7

我想将我的淘汰视图模型定位到 dom 的某些部分,如下所示:

ko.applyBindings(MyViewModel,$('#Target')[0]);

但是我不希望它适用于它下面的所有 dom。这样做的原因是整个 SPA 的东西运行得不是很好 - 无法跟上将每个潜在交互包含到一个巨大对象中的巨型视图模型。因此,页面由多个局部视图组成。我希望每个部分都实例化自己的 ViewModel 并为父级交互提供接口。

一些示例 dom

<div id="Target">
     <!--Everything here should be included except-->
     <div data-bind="DoNotBindBelowThis:true">
          <!--Everything here should NOT be included by the first binding, 
              I will specifically fill in the binding with targetted
              ApplyBind eg. ko.applyBindings(MyOtherViewModel, $('#MyOtherTarget')[0])
              to fill the gaps-->
            <div id="MyOtherTarget">
            </div>
     </div>
</div>

DoNotBindBelowThis再次,我怎样才能排除标有from的 div 下面的整个 dom 树applyBindings

4

1 回答 1

14

看看这里的博客文章:http ://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

基本上,您可以创建自定义绑定,例如:

ko.bindingHandlers.DoNotBindBelowThis = {
    init: function() {
        return { controlsDescendantBindings: true };
    }
};
于 2013-03-13T20:37:30.297 回答