【发布时间】:2013-11-26 01:01:47
【问题描述】:
如何将绑定应用到已绑定的父视图中的部分视图? 或者找到解决上述问题的方法...
我正在使用 asp.net,并且我的主视图正在做淘汰 ViewModelA 的员工。页面有许多 div(选项卡),用户可以通过这些选项卡导航,并且始终只有一个 ViewModel (ViewModelA)。 ViewModelA 属性填充在 div1、div2、div3 和 div4 中。简单的html结构是这样的:
<div id="mycontainer">
<div id="tab1">..<populate viewmodela properties>..</div>
<div id="tab2">...</div>
<div id="tab3">...</div>
<div id="tab4">...</div>
etc.
</div>
ko.applyBindings(ViewModelA);
它工作正常,但现在要求发生了变化:我必须将部分视图插入其中一个 div/选项卡(在 #tab2 内)。此局部视图使用以下命令加载其自己的剔除模型:
ko.applyBindings(partialViewModel, document.getElementById("partial_view_container"));
在这种情况下,绑定发生了两次(第一次调用ViewModelA 绑定时,第二次使用自己的绑定人员插入partialview 时)。这会产生一个错误:“您不能将绑定多次应用于同一个元素”。
我该如何解决这个问题?我知道对于applyBindings,有第二个参数是应该在其中完成绑定的容器,但在我的情况下,我没有一个用于ViewModelA 的容器,因为ViewModelA 填充了不同的div(选项卡)。
【问题讨论】:
-
在您的应用程序开始时,您是否知道要使用的所有选项卡?我的意思是你的标签是预定义的吗?
-
是的,我知道所有标签。有四个选项卡。
-
看看这篇关于在一个页面中绑定多个视图模型的文章:knockmeout.net/2012/05/quick-tip-skip-binding.html
标签: jquery html css binding knockout.js