Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Angularjs ViewModel到底是什么?_Angularjs_Mvvm - Fatal编程技术网

Angularjs ViewModel到底是什么?

Angularjs ViewModel到底是什么?,angularjs,mvvm,Angularjs,Mvvm,我对Angular很在行,我理解它是MVVM设计模式 从一个非常基本的层面上,我了解到以下几点: -视图:用户可以看到的应用程序的可视输出 -模型:填充应用程序的数据 -视图模型: 我看到它对自定义指令使用了以下命名约定: controller: myController, controllerAs: 'vm' 我也知道控制器真正连接了视图和模型。但是超出了这种理解水平,我很难准确理解它的意义 在该代码中,它使用ui路由控制器将“vm”设置为控制器,因此它不需要使用$scop

我对Angular很在行,我理解它是MVVM设计模式

从一个非常基本的层面上,我了解到以下几点:

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

-模型:填充应用程序的数据

-视图模型:

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

controller: myController,
        controllerAs: 'vm'
我也知道控制器真正连接了视图和模型。但是超出了这种理解水平,我很难准确理解它的意义

在该代码中,它使用ui路由控制器将“vm”设置为控制器,因此它不需要使用$scope,这与:

var vm = this;

我的答案与AngularJS并没有严格的关系,但采用了更一般的方法来解释什么是ViewModel

有时,将模型直接附着到视图并不是您想要的。 举个例子,你有一个有名字和姓氏的人,这将是你的“模型”。 如果您(在视图中)希望显示persons全名,则可以使用名为person的ViewModel,该ViewModel有一个名为Name的属性。此ViewModel将通过在FirstName和LastName之间加空格来填充

这只是一个示例,另一个示例可能是通过组合来自两个或多个不同模型的数据来表示ViewModel,例如person和address