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

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

我正在使用KnockoutJS并拥有主视图和视图模型。我想要一个对话框(jQuery UI one)弹出另一个视图,该视图要绑定一个单独的子视图模型。

使用AJAX检索对话框内容的HTML,所以我希望能够ko.applyBindings在请求完成后调用,并且我想将子视图模型绑定到通过对话框div中的ajax加载的HTML部分。

这实际上是可行的还是我需要在页面最初加载然后调用ko.applyBindings一次时加载我的所有视图和查看模型?


MYYA
浏览 1016回答 3
3回答

小怪兽爱吃肉

ko.applyBindings&nbsp;接受第二个参数,该参数是用作根的DOM元素。这可以让你做类似的事情:<div&nbsp;id="one"> &nbsp;&nbsp;<input&nbsp;data-bind="value:&nbsp;name"&nbsp;/></div><div&nbsp;id="two"> &nbsp;&nbsp;<input&nbsp;data-bind="value:&nbsp;name"&nbsp;/></div><script&nbsp;type="text/javascript"> &nbsp;&nbsp;var&nbsp;viewModelA&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;ko.observable("Bob") &nbsp;&nbsp;}; &nbsp;&nbsp;var&nbsp;viewModelB&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;ko.observable("Ted") &nbsp;&nbsp;}; &nbsp;&nbsp;ko.applyBindings(viewModelA,&nbsp;document.getElementById("one")); &nbsp;&nbsp;ko.applyBindings(viewModelB,&nbsp;document.getElementById("two"));</script>因此,您可以使用此技术将viewModel绑定到加载到对话框中的动态内容。总的来说,您只需要注意不要applyBindings在相同的元素上多次调用,因为您将获得多个事件处理程序。
打开App,查看更多内容
随时随地看视频慕课网APP