knockout - 不能将绑定多次应用于同一个元素

时间:2016-01-22 20:40:32

标签: javascript knockout.js

我需要用来自两个来源的数据来填充我的旅行表:从页面加载时使用GET的服务器(到用户的存档行程)和可观察值(当用户添加新行程时)。我可以以某种方式合并这两个脚本,以便它们只应用绑定一次吗?现在我收到一个错误:你不能多次将绑定应用于同一个元素

{{1}}

1 个答案:

答案 0 :(得分:4)

提供相关元素ID,然后仅将模型应用于那些DOM元素。例如,

<强> HTML

<div id="add-trip" class="panel panel-default">

<div id="your-trips" class="panel panel-default">

和绑定:

ko.applyBindings(model, document.getElementById("add-trip"));

ko.applyBindings(new tripModel(), document.getElementById("your-trips"));

JSFiddle示例:

https://jsfiddle.net/hellobrett/49xaqj46/1/

JSFiddle示例走向另一个方向:

https://jsfiddle.net/hellobrett/49xaqj46/2/

<强>参考:

http://knockoutjs.com/documentation/observables.html

  

如果您想知道ko.applyBindings的参数是什么,

     
      
  • 第一个参数说明要激活的声明性绑定要使用的视图模型对象

  •   
  • 或者,您可以传递第二个参数来定义要搜索数据绑定属性的文档的哪个部分。例如,ko.applyBindings(myViewModel,document.getElementById(&#39; someElementId&#39;))。这会将激活限制为具有ID someElementId及其后代的元素,如果您想拥有多个视图模型并将每个视图模型与页面的不同区域相关联,这将非常有用。

  •