knockoutjs可观察对象的可观察数组绑定
问题描述:
我有一个问题,当我将包含可观察属性的对象添加到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>
任何帮助将非常感激。由于
答
相反的self.Batch.BatchItems().push(bi);
,你必须调用self.Batch.BatchItems.push(bi);
两者之间的区别:
第一个直接推送至是内可观察到的数组的数组。这工作,但淘汰赛将无法告诉事情的变化...
第二个使用push
方法内ko.observableArray
。这push
方法再次推到内部数组,但它也调用valueHasMutated
。这会触发更新模型和UI所需的依赖关系更新。
更新fiddle取下的()
许多感谢的快速反应。 –