【问题标题】:Knockout nested observableArray not binding淘汰嵌套的 observableArray 不绑定
【发布时间】:2012-05-25 02:46:36
【问题描述】:

我查看了一些关于类似问题的相关搜索,但无论我尝试与工作结果匹配多近,我似乎都无法弄清楚以下代码有什么问题。

<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/

谢谢,

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    当您的主要div 上有text: name 时,它会破坏其中的内容。

    您需要执行一些操作,例如将 name 放入 span 内的 div 中,例如:http://jsfiddle.net/rniemeyer/L7uxh/44/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      相关资源
      最近更新 更多