我认为这是时间问题或其他什么。组合框的元素是从 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: <select data-bind="options: groups,
optionsText: 'Name',
optionsValue: 'Id',
value: selectedGroupId,
optionsCaption: 'Choose a group'"></select></div>
当文档准备好时,组合框具有“选择一个组”的单个元素。我验证了 Firebug 的数据是否正常。有没有办法解决这个问题?