如何将动态列名传递给可观察数组

时间:2014-06-18 04:43:17

标签: knockout.js observable

例如,如果我的循环如下

function test(obsArray,dynamicColumnName){
     var item = obsArray();
    ko.utils.arrayForEach(item, function(data) {
                computedColName = ko.computed(function () {
                    return data.dynamicColumnName();

    });
}

如何在数组循环中传递动态列?

我尝试了上述方法但我得到的错误为Object doesnt support property or method dynamicColumnName

1 个答案:

答案 0 :(得分:0)

我确定你想要为每个数组对象添加计算。每个计算应该取决于name属性。

var arr = [
    {name:"A",active:true},
    {name:"B",active:true},
    {name:"C",active:true},
]

function test(){
    var self = this

    self.TestData = ko.observableArray([])

    self.LoadData = function(){
        self.TestData(arr)
        self.MakeComputed()
    }

    self.MakeComputed = function(){
        ko.utils.arrayForEach(self.TestData(),function(data) {
            data.computedColName = ko.computed(function () {
                return data.dynamicColumnName();
            });
        });     
    }
    self.LoadData()
}

ko.applyBindings(new test())