1

knockoutjsに問題があります。私はこれを完全に間違っているかもしれませんが、observableArrayがajaxデータで設定されており、正常に動作しています。ただし、ajaxを再度実行すると、正常に機能するすべてのアイテム(observableArray.removeAll)が削除されますが、ビューが2倍になります。以前のすべてのアイテムとすべての新しいアイテムがあります。

私の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ステートメントをすべて削除すると、正常に機能します。ネストの問題のようです。

何か案は?それともこれはバグですか?それに関連するものを見つけようとしていますが、まだ運がありません。

ありがとう
ダン

4

1 に答える 1

2

現在、コンテナレス バインディングが連続して存在するか、場合によってはルート ノードとしてコンテナレス バインディングが存在することに関連する、ある種のバグがあります。まだ完全に調査する機会はありませんが、最近KOフォーラムで同様のレポートを調べました.

当面の回避策は、http: //jsfiddle.net/rniemeyer/HPSbY/1/のような別の要素を追加することです。

追加の詳細や修正計画があれば、この回答を更新するようにします。

于 2011-11-10T16:11:49.927 に答える