我在我的项目中使用了 knockout-2.1.0、jquery.mobile-1.2.0-rc.2。在提交这篇文章Knockout 和 jQuery Mobile: Binding data to select lists之前,我已经阅读了这个链接
我的问题是选择列表并不总是显示值。填充代码是正确的,它总是附加选择列表,当我激发元素时,我找到了数据,但 JQM 不显示。
我创建了 bindingHandlers 来触发
$(element).selectmenu('refresh', true);
但我发现这个解决方案不稳定,在我的浏览器上有时可以正常工作,有时不能。在我的 iPad2 上它不起作用。
这是我的代码:
ko.bindingHandlers.jqmOptions = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
if (typeof ko.bindingHandlers.options.init !== 'undefined')
ko.bindingHandlers.options.init(element, valueAccessor, allBindingsAccessor, viewModel);
},
update: function (element, valueAccessor, allBindingsAccessor, context) {
if (typeof ko.bindingHandlers.options.update !== 'undefined') {
ko.bindingHandlers.options.update(element, valueAccessor, allBindingsAccessor, viewModel);
}
var instance = $.data(element, 'selectmenu');
if (instance) {
$(element).selectmenu('refresh', true);
}
}
};
这个问题有没有稳定的解决方案。谢谢。