在单个视图中应用多个视图模型的不同方法

时间:2015-09-16 10:40:48

标签: javascript knockout.js

在我学习Knockout时,我已经看到了在单个视图中绑定多个视图模型的两种方法。我的问题是:

  1. 使用方式1还是方式2有优势吗?
  2. 在哪种情况下,选择一种方式而不是另一种方式?
  3. 在单个视图中绑定多个视图模型的任何其他更好的方法吗?
  4. // Way 1
    masterVM = {
        viewModelA : new viewModelA(),
        viewModelB : new viewModelB(),
        viewModelC : new viewModelC(),
    }
    
    // Way 2
    ko.applyBindings(viewModelA, document.getElementById('#div1'))
    ko.applyBindings(viewModelB, document.getElementById('#div2'))
    ko.applyBindings(viewModelC, document.getElementById('#div3'))
    

1 个答案:

答案 0 :(得分:0)

回答故障......

  
      
  1. 在哪种情况下选择一种方式而不是另一种方式?
  2.   

这是一个问题的背景,你的应用程序的大小,在逻辑的mannar中分离和组合关注,以及品味。其中包括。

  
      
  1. 使用方式1还是方式2有优势吗?
  2.   

没有太大的区别。方法1要求您构建所有第一级子视图模型,或者在开始执行applyBindings之前至少知道它们是什么。

  
      
  1. 在单个视图中绑定多个视图模型的任何其他更好的方法吗?
  2.   

正如评论中所提到的,您可以查看组件,但我个人认为更多内容适用于小部件和可重用控件,而不是应用程序的整个区域。