究竟什么是ViewModel?

时间:2016-03-31 14:42:41

标签: angularjs mvvm

我对Angular非常体面,我理解它的MVVM设计模式。

从最基本的层面来说,我已经了解了以下内容:

-view:用户可以看到应用程序的视觉输出

-model:填充应用程序的数据

-viewmodel:???

我已经看到它对自定义指令使用了以下命名约定:

controller: myController,
        controllerAs: 'vm'

我也知道控制器确实连接了视图和模型。但是超出这种理解水平,我很难理解它的重要性。

2 个答案:

答案 0 :(得分:0)

在该代码中,它使用ui-route controllerAs将'vm'设置为控制器,因此它不需要使用$ scope,有点像:

var vm = this;

答案 1 :(得分:0)

我的回答与AngularJS没有严格关系,但采用更通用的方法来解释ViewModel是什么。

有时将模型直接附加到视图不是您想要的。 考虑一个例子,你有一个拥有FirstName和LastName的人,这将是你的"模型"。

如果您 - 在您的视图中 - 想要显示人员姓名,那么拥有一个名为person的ViewModel是有意义的,该人员具有名为Name的单个属性。此ViewModel将通过连接FirstName和LastName以及其间的空格来填充。

这只是一个示例,另一个示例可能是您的ViewModel通过组合来自两个或更多不同模型的数据来表示,例如人和地址。

相关问题