我已经查看了一些关于类似问题的相关搜索,但无论我尝试与工作结果匹配多近,我似乎都无法弄清楚以下代码有什么问题。
<div data-bind="foreach: collections" >
<div data-bind="text:name,click: $data.AddToCollectionB">
<div data-bind="foreach: collectionB" >
<input type="text" data-bind="value: name">
</div>
</div>
</div>
var kt = kt || {};
kt.itemA= function(n) {
var self = this;
self.name = n.name;
self.collectionB = ko.observableArray(n.colB);
self.AddToCollectionB = function () {
self.collectionB.push(kt.itemB({ name: 'test-nested sub item' }));
alert(self.name);
alert(self.collectionB().length);
};
};
kt.itemB= function(n) {
var self = this;
self.name = ko.observable(n.name);
};
kt.vm= new (function() {
var self = this;
self.collections= ko.observableArray([new kt.itemA({name:'item 1', colB: [new kt.itemB({name:'sub-item'})]}),new kt.itemA({name:'item 2', colB: []})]);
});
ko.applyBindings(kt.vm);
谁能指出我做错了什么?
jsFiddle 链接:http: //jsfiddle.net/L7uxh/31/
谢谢,