我遇到了knockoutjs的问题。我可能正在做这个完全错误,但我有一个observableArray设置了ajax数据,它工作正常。 然而,当我再次运行ajax时,我删除了所有可以正常工作的项目(observableArray.removeAll),但之后视图只增加了一倍 - 我拥有所有以前的项目+所有新项目。
我的html / view看起来如下(我在1.3测试版中使用无容器控制流程)
<div class="rowCollection">
<!-- ko foreach: products -->
<!-- ko foreach: Stock -->
<!-- ko if: !DefaultSKU -->
<div class="row">
<div class="cell product" data-bind="html: $parent.ProductName"></div>
<div class="cell level">
<input type="text" data-bind="valueUpdate: 'afterkeydown', bind_stockLevel: $data.StockLevel" />
</div>
<div class="cell infinite"><input type="checkbox" data-bind="checked: StockInfinite" tabindex="-1" /></div>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
</div>
如果我删除所有的子foreach语句,它可以正常工作 - 所以似乎是一个嵌套问题?
有什么想法吗?或者这是一个错误?一直想找到与之相关的任何东西,但还没有运气。
感谢
丹
答案 0 :(得分:2)
目前有一些类型的bug与连续的无容器绑定或在某些情况下将无容器绑定作为根节点相关。我还没有机会对它进行全面研究,但最近确实在KO论坛上查看了一份简短的报告。
目前的解决方法是在其中添加另一个元素,如:http://jsfiddle.net/rniemeyer/HPSbY/1/
我将确保更新此回复以及任何其他详细信息或修复计划。