Javascript 如何在Knockout JS中强制应用绑定
我想刷新页面的模型绑定。正如文档所说,我使用applyBindings方法。 此外,我需要在一个页面上使用几个视图模型。为此,我在绑定时使用object wrapper+“with”关键字:Javascript 如何在Knockout JS中强制应用绑定,javascript,knockout.js,Javascript,Knockout.js,我想刷新页面的模型绑定。正如文档所说,我使用applyBindings方法。 此外,我需要在一个页面上使用几个视图模型。为此,我在绑定时使用object wrapper+“with”关键字: ko.applyBindings({ model1: {...}, model2: {...} }); <div data-bind="with: $root.model1"> ... </div> <div data-bind="with: $root.model2">
ko.applyBindings({ model1: {...}, model2: {...} });
<div data-bind="with: $root.model1"> ... </div>
<div data-bind="with: $root.model2"> ... </div>
}))
2)不起作用:
$("#b1").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some text")
},
myModel2: {
MyText: ko.observable("Some text")
}
});
$("#b1").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some text")
}
});
}))
据我所知,我们无法以这种方式绑定其他视图模型。我还尝试使用“ko.cleanNode()”方法,但它也不起作用。
存储在中的代码的完整示例
你能告诉我如何在页面上添加额外的视图模型吗?谢谢大家! 尝试不强制绑定,但更改已绑定模型的值:
var viewModel = function () {
var self = this;
self.myModel1 = ko.observable( {
MyText: ko.observable("Some other text")
});
self.myModel2 = ko.observable({
MyText: ko.observable("Some other text 2")
});
self.clickAction = function() {
//do the trick of assigning value
self.myModel1 ({
MyText: ko.observable("Some another text")
});
};
};
ko.applyBindings(new viewModel());
我的解决方案是:
有什么意见吗?没有,很遗憾。我不知道在未来的第一次applyBindinds调用中我需要多少视图模型。你想过使用observableArray of ObservableView模型吗?我无法想象它是如何工作的。你能提供一小段代码吗?这应该很好,如果我早点看到这个问题的话,这应该是我的答案。绑定在理论上可以实现吗?e、 g.实际的#元素不存在,直到稍后的ajax更新
$("#b2").click(function () {
ko.applyBindings({
myModel1: {
MyText: ko.observable("Some other text")
},
myModel2: {
MyText: ko.observable("Some other text 2")
}
});
});
var viewModel = function () {
var self = this;
self.myModel1 = ko.observable( {
MyText: ko.observable("Some other text")
});
self.myModel2 = ko.observable({
MyText: ko.observable("Some other text 2")
});
self.clickAction = function() {
//do the trick of assigning value
self.myModel1 ({
MyText: ko.observable("Some another text")
});
};
};
ko.applyBindings(new viewModel());