Knockout.js KnockoutJS:对多个div应用相同的ViewModel
我有一个可以反复复制的div。我想使用KO将一个新的ViewModel实例绑定到每个新的div实例。仅仅通过阅读教程和示例,我无法理解这是怎么可能的 考虑这一点:Knockout.js KnockoutJS:对多个div应用相同的ViewModel,knockout.js,Knockout.js,我有一个可以反复复制的div。我想使用KO将一个新的ViewModel实例绑定到每个新的div实例。仅仅通过阅读教程和示例,我无法理解这是怎么可能的 考虑这一点: <div id="div1"> <input data-bind="value: firstName" /> </div> <div id="div2"> <input data-bind="value: firstName" /> </div>
<div id="div1">
<input data-bind="value: firstName" />
</div>
<div id="div2">
<input data-bind="value: firstName" />
</div>
<script>
function ViewModel() {
this.firstName = ko.observable("Test");
}
ko.applyBindings(new ViewModel());
</script>
函数ViewModel(){
this.firstName=ko.可观察(“测试”);
}
应用绑定(新的ViewModel());
这将两个div上的输入字段绑定到同一个ViewModel对象。换言之,我要做的是将ViewModel的一个新实例绑定到每个div。它清楚地写在 或者,您可以传递第二个参数来定义所需文档的哪一部分 搜索数据绑定属性。例如,ko.applyBindings(myViewModel, document.getElementById('someElementId'))。这将限制对元素的激活 使用ID someElementId及其子体,如果您想拥有多个 查看模型并将每个模型与页面的不同区域关联 因此,考虑到你的例子:
<div id="div1">
<input data-bind="value: firstName" />
</div>
<div id="div2">
<input data-bind="value: firstName" />
</div>
<script>
function ViewModel() {
this.firstName = ko.observable("Test");
}
var vm1 = new ViewModel();
var vm2 = new ViewModel();
ko.applyBindings(vm1, document.getElementById('div1'));
ko.applyBindings(vm2, document.getElementById('div2'));
vm2.firstName("Archie");
</script>
函数ViewModel(){
this.firstName=ko.可观察(“测试”);
}
var vm1=新的ViewModel();
var vm2=新的ViewModel();
应用绑定(vm1,document.getElementById('div1');
应用绑定(vm2,document.getElementById('div2');
vm2.名字(“ARCHE”);
我浏览了几页文档,希望找到一个“applyBinding”部分,但没有。你所指出的那一段是在一个不同的主题中一起讨论的。不管怎样,你的代码似乎可以做到这一点。谢谢对不起,如果我听起来很讨厌,但是这段话是在“激活淘汰”的主题中,在我看来,这是一个再好不过的主题了。KO一直在为我工作,所以我认为我已经完成了“激活”部分。但我明白你的意思。总的来说,KO看起来相当完整,尽管完成得很好。我真的很高兴看到有第二个参数!相关的: