2つのネストされたdivと各div内に2つのボタンがあります。
<div id="d1">
<button data-bind="click:x">
invoke x
</button>
<div id="d2">
<button id="Q_btn" data-bind="click:x">
invoke x
</button>
</div>
</div>
および2ビューモデルのバインディングは次のとおりです。
var viewModel1 = {
x : function() {
alert('from model1')
}
}
var viewModel2 = {
x : function() {
alert('from model2')
}
}
ko.applyBindings(viewModel2, document.getElementById('d2'));
ko.applyBindings(viewModel1, document.getElementById('d1'));
ここで、d2(Q_btn)内のボタンをクリックすると、2つのアラートが発生し、最初のボタンは「モード2から」、2番目のボタンは「モデル1から」と表示されます。Q_btnをクリックすると、最初のアラートのみが発生します。
注:私のプロジェクトでは、divにいくつかのhtmlページをロードします。各divには独自のビューモデルがあります。これまではすべて問題ありませんでしたが(各divは独自のビューモデルで動作し、競合は発生しません)、ネストされたdivの場合は上記の問題が発生しました。
私はあなたの助けに感謝します