繁体   English   中英

Knockout.js 计算出的 observable 没有绑定到 observable 数组

[英]Knockout.js Computed observable not binding to observable array

我正在尝试获取计算值并将这些值推送到可观察数组。 Web Api 控制器返回简单值 - 只是没有 json 包装的纯数字。 可能是这个问题。 请提供建议,因为我是 Knockout 的新手。 PS 这是两个 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);
            });
        }

我必须做一些猜测工作,但我相信你想要的是

self.books.push(item);

代替

self.books().push(item);

注意那里缺少的() 淘汰赛可观察数组“反映”了该数组的大部分功能。 通过使用这些而不是Array提供的那些,knockout 可以跟踪包装数组发生的变化。

编辑:您可以在http://knockoutjs.com/documentation/observableArrays.html#manipulating-an-observablearray找到所有“镜像”函数的列表,大约向下两页(“操作 observableArray”部分)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM