ページのモデルバインディングを更新したい。ドキュメントにあるように、私はapplyBindingsメソッドを使用します。また、ページでいくつかのviewModelを使用する必要があります。これを行うには、バインディングでobject-wrapper+"with"キーワードを使用します。
ko.applyBindings({ model1: {...}, model2: {...} });
<div data-bind="with: $root.model1"> ... </div>
<div data-bind="with: $root.model2"> ... </div>
動的バインディングの更新を使用しないまでは正常に機能します。ページにビューモデルを追加しようとすると、機能しません:(
いくつかのコード:
1)正常に動作します:
$("#b1").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some text")
},
myModel2: {
MyText: ko.observable("Some text")
}
});
});
$("#b2").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some other text")
},
myModel2: {
MyText: ko.observable("Some other text 2")
}
});
});
2)機能しない:
$("#b1").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some text")
}
});
});
$("#b2").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some other text")
},
myModel2: {
MyText: ko.observable("Some other text 2")
}
});
});
私が理解しているように、このような方法で追加のビューモデルをバインドする方法はありません。「ko.cleanNode()」メソッドも使おうとしましたが、うまくいきません。http://jsfiddle.net/eN8dq/2/に保存されているコードの完全なサンプル
ページにビューモデルを追加する方法を教えてください。ありがとうございました!