ajax – 你能调用ko.applyBindings绑定局部视图吗?

前端之家收集整理的这篇文章主要介绍了ajax – 你能调用ko.applyBindings绑定局部视图吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用KnockoutJS并有一个主视图和视图模型。我想一个对话框(jQuery UI一)弹出与另一个视图,一个单独的子视图模型绑定到。

对话框内容的HTML是使用AJAX检索的,所以我想能够调用ko.applyBindings一旦请求完成,我想绑定子视图模型只是通过对话框div中的ajax加载的HTML部分。

这是真的可能,还是我需要加载所有我的视图和视图模型,当页面初始加载,然后调用ko.applyBindings一次?

ko.applyBindings接受第二个参数,它是一个用作根的DOM元素。

这将让你做类似的事情:

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

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

<script type="text/javascript">
  var viewmodelA = {
     name: ko.observable("Bob")
  };

  var viewmodelB = {
     name: ko.observable("Ted")
  };

  ko.applyBindings(viewmodelA,document.getElementById("one"));
  ko.applyBindings(viewmodelB,document.getElementById("two"));
</script>

因此,您可以使用此技术将viewmodel绑定到您加载到对话框中的动态内容。总的来说,你只是想小心不要在相同的元素上多次调用applyBindings,因为你会得到多个事件处理程序。

猜你在找的Ajax相关文章