【发布时间】:2019-12-24 06:31:11
【问题描述】:
我一直面临一些关于“foreach”绑定到 ko.observableArray 以进行淘汰赛的问题,特别是淘汰赛 3.5.0。 “foreach”绑定在 UI 端创建 2 个元素,而在当前数据上下文中,我在 observableArray 中只有一个对象。我将其绑定如下:
<!-- ko foreach: { data: $root.(...my own javascript function)') } -->
...
<!-- /ko -->
我在这里做的是通过在 observableArray 上调用 .push() 手动将新条目添加到空的 observableArray 中。该条目已成功添加到 observableArray,但是即使我只将一个条目推入 observableArray,它也会显示 2 个 UI 元素而不是一个。
但是,如果我设置属性“includeDestroyed: false”,似乎问题就会消失。
根据我收集到的信息,Knockout 3.5.0 中有一些与 foreach 绑定的实现相关的更改在淘汰赛中被更改。 “arrayChange”的实现发生了变化,它可以检测出可观察到的剔除数组中的任何变化。
我想知道的是“arrayChange”事件期间发生的确切流程,有什么方法可以找出一个空的 observableArray 如何处理“push”函数
【问题讨论】: