1

全新的淘汰赛,想知道是否有人可以为我回答问题。

在绑定到页面上的元素时,有没有办法处理具有相同名称的属性的视图模型。例如

<input data-bind="value: prop1" />

function vm1(){
  this.prop1 = something
}

function vm2(){
  this.prop1 = something
}

ko.applybindings(new vm1());
ko.applybindings(new vm2());

我在文本框上测试了这个场景,基本上最后一个绑定获胜。这个场景怎么处理。

4

2 回答 2

1

有两种方法可以解决这个问题。

  • 指定绑定的目标,如下所示:ko.applyBindings(new vm1(), document.getElementById("vm1"));
  • 创建一个“主”视图模型来保存您的vm1vm2模型并指定绑定上下文
于 2013-07-05T15:14:25.853 回答
1

您正在绑定到页面,因此最后一个获胜,但是您可以通过将元素作为第二个参数传入来绑定页面的元素或部分。

<div id="one">
  <input data-bind="value: prop1" />
</div> 

<div id="two">
  <input data-bind="value: prop1" />
</div>

function vm1(){
  this.prop1 = something
}

function vm2(){
  this.prop1 = something
}

ko.applybindings(new vm1(), document.getElementById("one"));
ko.applybindings(new vm2(), document.getElementById("two"));
于 2013-07-05T15:14:50.433 回答