我在一个页面中加载 4 个部分视图。包含单独 div 中的所有局部视图的主页,每个局部视图都有自己的淘汰模型。我遇到的问题是各个剔除模型无法绑定文本字段的值等等。
我想将页面分开,这样主页面就不会那么混乱,并且与部分视图紧密耦合。这本质上是对之前完成的这 4 页的总结。
似乎我无法将淘汰模型拉出,因为它们需要来自控制器的信息来填充局部视图,并且我不想将局部视图拉入此页面。
本质上,我想用自己的淘汰模型加载部分视图并具有所需的功能。
我在一个页面中加载 4 个部分视图。包含单独 div 中的所有局部视图的主页,每个局部视图都有自己的淘汰模型。我遇到的问题是各个剔除模型无法绑定文本字段的值等等。
我想将页面分开,这样主页面就不会那么混乱,并且与部分视图紧密耦合。这本质上是对之前完成的这 4 页的总结。
似乎我无法将淘汰模型拉出,因为它们需要来自控制器的信息来填充局部视图,并且我不想将局部视图拉入此页面。
本质上,我想用自己的淘汰模型加载部分视图并具有所需的功能。
这听起来像在你的情况下,你会想要使用第二个参数到ko.applyBindings
.
第二个参数允许您传递要用作绑定的根元素的 DOM 元素。
因此,如果您将部分视图加载到以下元素中:
<div id="one">
...
</div>
<div id="two">
....
</div>
您可以将不同的视图模型绑定到每个容器,例如:
ko.applyBindings(oneModel, document.getElementById("one"));
ko.applyBindings(twoModel, document.getElementById("two"));
在每个局部视图中,在页面的最底部放置一些 JavaScript。
<script type="text/javascript">
ko.applyBindings(viewModelObject, document.getElementById("someDivId"));
</script>
这将在正确的时间应用绑定。否则,由于视图加载的异步方式,绑定将不起作用。
注意:viewModelObject应该在主视图中定义,以及一般的ko包含文件。