如何将新的计算字段添加到挖空视图模型中

时间:2013-11-12 12:33:49

标签: knockout.js viewmodel code-snippets

我正在尝试在视图模型中计算第三个字段。我知道这不是方法,而只是给出以下代码段。 请帮忙

$.ajax({
    type: "GET",
    url: '/ASPNET/GetGroups',
    dataType: "json",
    success: function (data) {
        var viewModel = {
            advisorGroup: ko.observableArray(data)
        };
        viewModel.advisorGroup.label = ko.computed(function () {
            return self.code + ' (' + self.cls+')';
        });
        alert(JSON.stringify(viewModel));
        ko.applyBindings(viewModel);
    }
})


<input type="checkbox" data-bind="attr: { value: code, id: code }" name="GroupsSel" checked="checked">
<label data-bind="attr: { for: code }, text: label "></label>

1 个答案:

答案 0 :(得分:1)

试试这个。

success: function (data) {
    ko.utils.arrayForEach(data, function(item){
        item.label = ko.computed(function () {
            return item.code + ' (' + item.cls + ')';
        });
    });
    //..........
}

小提琴:http://jsfiddle.net/8WqQu/1/

或者正如安德斯所说,你可以这样做。

success: function (data) {
    ko.utils.arrayForEach(data, function(item){
        item.label = item.code + ' (' + item.cls + ')';
    });
    //..........
}

小提琴:http://jsfiddle.net/8WqQu/2/