1

我有这个代码:

     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 数组。我究竟做错了什么?

谢谢

4

1 回答 1

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 中最基本的概念,因此我建议您查看文档以更好地了解这些 observables 是如何工作的。

于 2013-10-14T23:04:36.373 回答