knockoutjs 1.3 - observableArray不更新视图

时间:2011-11-10 15:37:14

标签: javascript jquery knockout.js ko.observablearray

我遇到了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语句,它可以正常工作 - 所以似乎是一个嵌套问题?

有什么想法吗?或者这是一个错误?一直想找到与之相关的任何东西,但还没有运气。

感谢

1 个答案:

答案 0 :(得分:2)

目前有一些类型的bug与连续的无容器绑定或在某些情况下将无容器绑定作为根节点相关。我还没有机会对它进行全面研究,但最近确实在KO论坛上查看了一份简短的报告。

目前的解决方法是在其中添加另一个元素,如:http://jsfiddle.net/rniemeyer/HPSbY/1/

我将确保更新此回复以及任何其他详细信息或修复计划。