2017-06-22 183 views
0

我有一个问题,当我将包含可观察属性的对象添加到observablearray时,该接口未被更新。knockoutjs可观察对象的可观察数组绑定

我在这个论坛上研究过类似的问题(KnockoutJS - Observable Array of Observable objects),但我仍然无法得到正确的语法,所以经过一天的尝试,我期待着求助。

我已经创造了什么,我想实现

https://jsfiddle.net/ryrpnbr9/23/

当你按下Add按钮一个BatchItem对象被创建并添加到批量的BatchItems observablearray
的一个实例。我可以看到对象正在更新。

我有下面的结合表定义

<tbody data-bind="foreach: Batch.BatchItems()"> 
    <tr> 
     <td><span data-bind="text: DocumentType"></span></td> 
     <td><span data-bind="text: ItemType"></span></td>        
    </tr> 
</tbody> 

任何帮助将非常感激。由于

回答

2

相反的self.Batch.BatchItems().push(bi);,你必须调用self.Batch.BatchItems.push(bi);

两者之间的区别:

第一个直接推送至是可观察到的数组的数组。这工作,但淘汰赛将无法告诉事情的变化...

第二个使用push方法内ko.observableArray。这push方法再次推到内部数组,但它也调用valueHasMutated。这会触发更新模型和UI所需的依赖关系更新。

更新fiddle取下的()

+0

许多感谢的快速反应。 –

相关问题