KnockoutJS将ko.computed值传递给函数

时间:2015-08-05 05:43:35

标签: javascript arrays knockout.js

我有一个工作的淘汰赛js脚本,myValues是一个ko.computed的数组结果,然后我将它传递给myValues2,它调用myFunction使该数组中的每个对象为#34;可观察"。这有效但我想在self.myValues中调用myFunction,这样我就不必创建另一个observableArray myValues2了。你能帮我把myValues和myValues2的脚本结合起来,这样我最终可以删除self.myValues2。这是我的代码:

var myFunction = function (id, name, amount, automatic) {
    var self = this;
    self.Id = ko.observable(id);
    self.Name = ko.observable(name);
    self.Amount = ko.observable(amount);
    self.Automatic = ko.observable(automatic);
};

self.myValues = ko.computed(function () {
    return ko.utils.arrayFilter(self.completeList(), function (ded) {
        return ded.automatic() == true;
    });
});

self.myValues2 = ko.observableArray();
self.myValues2(ko.utils.arrayMap(self.myValues(), function (dd) {
    return new myFunction(dd.id(), dd.name(), dd.amount(), dd.automatic());
}));

1 个答案:

答案 0 :(得分:0)

self.completeList()

如何定义这个数组?

因为您开始按自动字段过滤此列表,然后填写其他列表。奇怪的顺序。

return ded.automatic() == true;