我正在尝试获取计算值并将这些值推送到可观察数组。 Web Api控制器返回简单值 - 只是没有json换行的纯数字。可能是这个问题。请告诉我,我是Knockout的新手。 附:这是两个ajax调用,因为它们调用不同的api控制器。
function GrafikViewModel(grafikUri) {
var self = this;
self.books = ko.observableArray();
self.PaxLeft = ko.computed(function () {
ko.utils.arrayForEach(self.books(), function (book) {
$.getJSON("/api/orders/getpax/" + book.kodg, function (item) {
self.books().push(item);
});
}, GrafikViewModel)
});
$.getJSON(grafikUri, function (data) {
self.books(data.$values);
});
}
答案 0 :(得分:0)
我必须做一些猜测工作,但我相信你想要的是
self.books.push(item);
而不是
self.books().push(item);
注意那里缺少()
。淘汰赛观察阵列"镜像"大多数数组的功能。通过使用那些而不是Array
提供的那些,knockout可以跟踪包装数组发生的变化。
编辑:您可以找到所有"镜像"的列表功能在http://knockoutjs.com/documentation/observableArrays.html#manipulating-an-observablearray,大约两页下来(部分"操纵observableArray")