0

我正在尝试实现这样的目标:

for (var i = 0; i < types.length; i++) {
    var type = types[i];
    myObj()['text' + type.name] = ko.computed(function () {
        return myFuction(myObj()[type.name + 'MyText']());
    });
}

如果不清楚,我有一个特定的对象类型,我正在努力实现最大的灵活性。即,我希望能够在数据库中向我的对象添加一个新属性,而无需更改客户端代码。

这工作正常,除非涉及计算变量。在上面的例子中,函数似乎总是在类型的最后一个值上调用,即数组的最后一个值。

有人有解决这个问题的方法吗?

例子:

types = [{name: 'red'}, {name: 'green'}, {name: 'blue'}];

最后, myFunction 和计算变量总是被调用 {name: blue} 希望这有点清楚......

4

0 回答 0