我对Angular非常体面,我理解它的MVVM设计模式。
从最基本的层面来说,我已经了解了以下内容:
-view:用户可以看到应用程序的视觉输出
-model:填充应用程序的数据
-viewmodel:???
我已经看到它对自定义指令使用了以下命名约定:
controller: myController,
controllerAs: 'vm'
我也知道控制器确实连接了视图和模型。但是超出这种理解水平,我很难理解它的重要性。
答案 0 :(得分:0)
在该代码中,它使用ui-route controllerAs将'vm'设置为控制器,因此它不需要使用$ scope,有点像:
var vm = this;
答案 1 :(得分:0)
我的回答与AngularJS没有严格关系,但采用更通用的方法来解释ViewModel是什么。
有时将模型直接附加到视图不是您想要的。 考虑一个例子,你有一个拥有FirstName和LastName的人,这将是你的"模型"。
如果您 - 在您的视图中 - 想要显示人员姓名,那么拥有一个名为person的ViewModel是有意义的,该人员具有名为Name的单个属性。此ViewModel将通过连接FirstName和LastName以及其间的空格来填充。
这只是一个示例,另一个示例可能是您的ViewModel通过组合来自两个或更多不同模型的数据来表示,例如人和地址。