1

我认为这是时间问题或其他什么。组合框的元素是从 ajax 调用中获取的,如果我使用 selectmenu,剔除数据绑定不会将这些元素获取到组合框。但是,如果我注释掉,

 $("select").selectmenu();

一切正常。我使用了以下代码

    function ViewModel() {
        // Data
        var self = this;
        self.loaded = ko.observable(false);
        self.groups = ko.observableArray([]);
        //....
        $.getJSON("api/groups", self.groups)
            .done(function () {
                self.loaded(true); $('select').selectmenu('refresh', true);
            });
    }
    ko.applyBindings(new ViewModel());
    $(document).ready(function () {
        // Handler for .ready() called.
        $("select").selectmenu();
    });        

和这个 html

    <div>Active Group:&nbsp; <select data-bind="options: groups,
                  optionsText: 'Name',
                  optionsValue: 'Id',
                  value: selectedGroupId,
                  optionsCaption: 'Choose a group'"></select></div>

当文档准备好时,组合框具有“选择一个组”的单个元素。我验证了 Firebug 的数据是否正常。有没有办法解决这个问题?

4

1 回答 1

0

我认为您需要与 selectmenu 事件进行自定义绑定。请参考以下。

http://knockoutjs.com/documentation/event-binding.html

Knockout 和 jQuery Mobile:将数据绑定到选择列表

于 2012-08-10T01:23:19.580 回答