0

次の問題を経験したことがあり、その回避策を知っている人がいるかどうか疑問に思っていました.

ko テンプレートに「foreach」反復があり、「with」コンテキスト修飾子を使用しようとすると、「with」が結合しようとすると、ko は反復の最初の項目 (はい、最初の項目のみ) の処理に失敗します。 「id」と呼ばれるプロパティ。

例: http://jsfiddle.net/rG5Xw/8/

実行すると、最初のアイテムは表示されませんが、内部の仮想要素の 'with' ステートメントを 'name' に変更すると、期待どおりに動作します。かなりうるさい... :S

これを解決する方法を知っている人はいますか?

前もって感謝します!

4

1 に答える 1

1

withオブジェクトで使用することを意図しています。したがって、ゼロを偽と見なす単純な真正性チェックを行います。数値を文字列に変換することでこれを回避できます: http://jsfiddle.net/rG5Xw/11/

編集:これは、値のチェックを行わないwithmy に基づく代替です (例: http://jsfiddle.net/mbest/rG5Xw/12/ ):withlight

ko.bindingHandlers['mywith'] = {
    'init': function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var bindingValue = ko.utils.unwrapObservable(valueAccessor());
        var innerContext = bindingContext['createChildContext'](bindingValue);
        ko.applyBindingsToDescendants(innerContext, element);
        return { 'controlsDescendantBindings': true };
    }
};
ko.virtualElements.allowedBindings.mywith = true;
于 2012-08-28T20:26:00.567 に答える