我想为我的页面刷新模型绑定。正如所说的文档我使用applyBindings方法。 此外,我需要在页面上使用少数viewModels。要做到这一点,我使用object-wrapper +“带”关键字绑定:如何在Knockout JS中强制应用绑定
ko.applyBindings({ model1: {...}, model2: {...} });
<div data-bind="with: $root.model1"> ... </div>
<div data-bind="with: $root.model2"> ... </div>
它工作正常,直到我不使用动态绑定更新。如果我尝试在页面上添加额外的ViewModels,它不工作:(
很少的代码段:
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/
的全部代码示例您能否告诉我如何在页面上添加额外的视图模型?谢谢!
这应该可以很好地工作,而且如果我早点看到了这个问题,本来应该是我的答案。 – daedalus28
理论上可以进行绑定吗?例如实际#元素不存在,直到在未来的ajax更新 – Adaptabi
@DotNetWise是 –