1

我有一个关于 knockoutjs 的问题。我可能完全错误地这样做,但我有一个使用 ajax 数据设置的 observableArray 并且它工作正常。但是,当我再次运行 ajax 时,我删除了所有工作正常的项目 (observableArray.removeAll),但随后视图加倍 - 我拥有所有以前的项目 + 所有新项目。

我的 html/view 如下所示(我使用的是 1.3 beta 中的无容器控制流)

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

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

谢谢丹
_

4

1 回答 1

2

当前存在与连续无容器绑定或在某些情况下将无容器绑定作为根节点相关的某种类型的错误。我还没有机会充分研究它,但最近确实查看了 KO 论坛上的类似报告。

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

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

于 2011-11-10T16:11:49.927 回答