1

ko.applyBindingsバインドするDOM要素である2番目のパラメーターを受け取ることができることを認識してい ます

しかし、私の場合は異なります。大きなページがあり、を使用してビューモデルを指定したい ko.applyBindings(bigModel)

次に、ページの中央に小さなサイドバーセクションがあります。次を使用して別のビューモデルを指定します。 ko.applyBindings(smallModel, $("#sidebar")[0])

#sidebar小さなセクションでノックアウトを使用して制限付き属性を使用すると、エラーがスローされますUnable to parse bindingsが、それでも値がバインドされます(例<span 'text:propertyOnSmallModel' />)。その後、これらの属性を空の属性として追加しようとしましたがbigModel、スローされませんでした。

これを適用するにはどうすればよいですか。1つはページ全体に、もう1つは特定のセクションに2つのビューモデルを使用します。

4

2 に答える 2

6

このハンドラーを使用してバインドを停止するように Knockout.js に指示できます。

ko.bindingHandlers.stopBinding = {
    init: function ()
    {
        return { controlsDescendantBindings: true };
    }
};

ko.virtualElements.allowedBindings.stopBinding = true;

次に使用:

        <!-- ko stopBinding: true -->
        <!-- /ko -->

Web ページの html コメントを削除して、バインドを停止します。

したがって、より大きなモデルをページ全体にバインドし、上記の html コメントを使用して、そのモデルが特定のセクションにバインドされるのを停止します。

于 2013-01-17T16:17:50.397 に答える
0

子ビューモデルを使用しても問題はありません。サイドバー ビューモデルを親ビューモデルのプロパティとして追加します。「with」バインディングを使用して、子ビューモデルをサイドバー要素にバインドします。

于 2013-01-17T16:52:35.403 に答える