使用できるかどうか疑問に思っていますノックアウトを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