Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单个视图中应用多个视图模型的不同方法_Javascript_Knockout.js - Fatal编程技术网

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

Javascript 在单个视图中应用多个视图模型的不同方法,javascript,knockout.js,Javascript,Knockout.js,据我所知,在单个视图中绑定多视图模型有两种方法。我的问题是: 使用方式1或方式2是否有优势? 在哪种情况下,选择一种方式而不是另一种方式? 在单视图中绑定多视图模型还有其他更好的方法吗? //方式1 masterVM={ viewModelA:新的viewModelA, viewModelB:新的viewModelB, viewModelC:新的viewModelC, } //方式2 ko.applyBindingsviewModelA,document.getElementById'div1'

据我所知,在单个视图中绑定多视图模型有两种方法。我的问题是:

使用方式1或方式2是否有优势? 在哪种情况下,选择一种方式而不是另一种方式? 在单视图中绑定多视图模型还有其他更好的方法吗? //方式1 masterVM={ viewModelA:新的viewModelA, viewModelB:新的viewModelB, viewModelC:新的viewModelC, } //方式2 ko.applyBindingsviewModelA,document.getElementById'div1' ko.applyBindingsviewModelB,document.getElementById'div2' ko.applyBindingsviewModelC,document.getElementById'div3'
答错了

在哪种情况下,选择一种方式而不是另一种方式? 这取决于上下文、应用程序的大小、以逻辑方式分离和组合关注点,以及品味。除其他外

使用方式1或方式2是否有优势? 没有大的区别。方法1要求您构建所有第一级子视图模型,或者至少在开始应用绑定之前知道它们是什么

在单视图中绑定多视图模型还有其他更好的方法吗?

如评论中提到的,您可以查看组件,但我个人认为更多的东西用于控件和可重用控件。不是应用程序的全部区域。

应用程序的复杂性使您选择b/w 1或2。@Supercol感谢您能进一步详细解释。如果您有多个独立建模的部分,您可能应该将其制作为组件。