你可以调用ko.applyBindings来绑定部分视图吗?

9 浏览
0 Comments

你可以调用ko.applyBindings来绑定部分视图吗?

我正在使用KnockoutJS,拥有一个主视图和视图模型。我想要一个对话框(jQuery UI中的对话框)弹出,内容是另外一个视图,其中一个单独的子视图模型要与之绑定。

对话框内容的HTML是通过AJAX获取的,所以我希望一旦请求完成就调用ko.applyBindings,并且我希望仅将子视图模型绑定到通过AJAX加载到对话框div中的HTML的部分。

这真的有可能吗?还是我需要在网页最初加载时加载所有视图和视图模型,然后再调用ko.applyBindings

admin 更改状态以发布 2023年5月21日
0
0 Comments

尽管尼梅耶的答案更正确,你也可以这样做:

  
  

这意味着你不需要指定DOM元素,甚至可以将多个模型绑定到同一个元素上,如下所示:

  

0
0 Comments

ko.applyBindings接受一个第二参数作为根元素的DOM元素。

这样,你就可以像这样做:

  
  

因此,你可以使用这种技术将viewModel绑定到加载到对话框中的动态内容。总的来说,你要小心不要在同一元素上多次调用applyBindings,否则会附加多个事件处理程序。

0