Knockout.js: ページまたはページの一部に複数の ViewModel バインディングがある 質問する

Knockout.js: ページまたはページの一部に複数の ViewModel バインディングがある 質問する

使用できるかどうか疑問に思っていますノックアウトko.applyBindings()複数回使用して、異なる ViewModel をページの一部にバインドします。たとえば、次のようなコードがあるとします。

<div id="foo">...</div>
...
ko.applyBindings(new PageViewModel());
ko.applyBindings(new PartialViewModel(), $('#foo')[0]);

現在、 に 2 つの ViewModel バインディングを適用しています<div id="foo>。これは合法でしょうか?

ベストアンサー1

同じ要素に対して ko.applyBindings を複数回呼び出すことは避けてください。最良の場合、要素は更新時に必要以上の作業を実行することになり、最悪の場合、同じ要素に対して複数のイベント ハンドラーが起動することになります。

この種の問題を処理するためのオプションはいくつかあり、ここで詳しく説明します。マルチビューアプリケーション用のknockoutjsパターンの例

コンテンツの中央に、後でバインディングを適用するために呼び出す「島」が本当に必要な場合は、ここで説明する手法を使用できます。http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

おすすめ記事