我有这段代码:
self.States = ko.observableArray();
self.GetAllStates = function () {
$.getJSON('/Reference/GetAllStates', function (data) {
var mapped = ko.mapping.fromJS(data);
self.States = mapped;
})
}
<select class="selectpicker" data-bind="options: States, optionsText: 'State'"></select>
选择菜单中没有任何内容。 JS控制台中没有错误。我已经验证服务器正在返回数据。服务器正在返回JSON数组。我做错了什么?
由于
答案 0 :(得分:2)
你需要在observableArray
上使用'setter'self.States = ko.observableArray();
self.GetAllStates = function () {
$.getJSON('/Reference/GetAllStates', function (data) {
var mapped = ko.mapping.fromJS(data);
self.States(mapped);
});
设置observable的值时,必须将其传递给函数。这是Knockout中最基本的概念,因此我建议您查看文档以更好地理解这些可观察对象的工作原理。