0

ネストされた要素にその場でデータを追加しようとしています。問題は、サーバーから返される各オブジェクトを監視可能な配列に変換したいことです..

function viewModel() {
    this.projects = ko.observableArray();
    this.addMember = function addMember() {
        var match = ko.utils.arrayFirst(this.projects(), function (item) {
           // return the first item in the array just for simulation
           return true; 
        });
        if (match) {
            var newItem = {
                name: 'member 5'  
            };
            match.members.push(newItem);
        }
    };
}

var vm = new viewModel();
// manually declare observable
vm.projects.push({
    name: ko.observable('project a'),
    members: ko.observableArray([
        { name: 'member 1' },
        { name: 'member 2' }
        ])
});

vm.projects.push({
    name: ko.observable('project b'),
    members: ko.observableArray([
        { name: 'member 3' },
        { name: 'member 4' }
        ])
});

ko.applyBindings(vm);

これは私が今得ているものです:

http://jsfiddle.net/RyWr6/

この例では、各オブジェクトを observablearray として作成せずに、「すべてのオブジェクトを配列として設定したリスト」に ko.mapping を使用したい

4

1 に答える 1