AngularJS中的模型视图ViewModel
我现在正在读书 第一章提出, 控制器负责提供视图绑定的状态 指挥 视图可以发回控制器以执行工作单元。这释放了 视图不必维护状态(因为它只需要显示 控制器处于中),它将视图从必须执行的任何工作中解放出来(视图总是这样) 服从于控制器) 他所说的为视图提供绑定状态是什么意思 此外,他建议说,接下来 使用ViewModel可以反转传统上使用的应用程序流 存在于jQuerystyle中 应用。在jQuery中,您应该查询DOM并附加一个事件侦听器。 当触发该事件时,您将尝试解释该事件并解析DOM 用于状态,以便可以执行一些命令式操作。这将强制紧耦合 在HTML和驱动它的JavaScript之间。通过引入ViewModel, 你可以打破这种关系。控制员不再负责 用于侦听视图,但视图负责发出特定命令 连接到其操作的控制器 最后一行使我困惑 控制器不再负责收听视图, 但是视图负责向其操作的控制器发出特定命令 不是说儿子不再有责任听父亲的话,而是说父亲有责任向儿子发出具体的命令,儿子必须执行这些命令 即使儿子不负责任,儿子也要负责任。但它们(两个)不是都一样吗AngularJS中的模型视图ViewModel,angularjs,mvvm,Angularjs,Mvvm,我现在正在读书 第一章提出, 控制器负责提供视图绑定的状态 指挥 视图可以发回控制器以执行工作单元。这释放了 视图不必维护状态(因为它只需要显示 控制器处于中),它将视图从必须执行的任何工作中解放出来(视图总是这样) 服从于控制器) 他所说的为视图提供绑定状态是什么意思 此外,他建议说,接下来 使用ViewModel可以反转传统上使用的应用程序流 存在于jQuerystyle中 应用。在jQuery中,您应该查询DOM并附加一个事件侦听器。 当触发该事件时,您将尝试解释该事件并解析DOM 用于
他到底想说什么?想想这些例子。以下是jQuerystyle应用程序:
jQuery('element')。在('click',clickHandler');
控制器从视图中获取一个元素并绑定到它
这里是一个角度的例子,关系是颠倒的。现在控制器公开了一个处理程序,视图绑定到它
功能控制器(){
this.clickHandler=function(){};
}
希望这有帮助 以下是我对它的理解 在angular中,视图是您的HTML,控制器是您的角度控制器(这一点并不奇怪,视图模型是
$scope
对象,您可以从控制器或视图访问该对象(这有点像将控制器链接到视图的胶水)
为要绑定的视图提供状态意味着视图只知道如何显示数据(即,它知道数据的结构),但在任何情况下,它都不保存实际数据。此数据/状态由通过“放置”将其绑定到视图的控制器保存$scope
对象上的数据,从而允许视图访问并显示数据
控制器不再负责侦听视图,而是
相反,视图负责向
它所操作的控制器
这是一种“告诉-不要问”的设计模式。如果发生了任何变化,视图将告诉控制器,而不是让控制器询问视图
e、 g:假设我们有一个带有submit按钮的表单,而不是让控制器询问视图是否有人单击了jQuery中的submit按钮:
$('submitButton').on('click', doSomething);
视图将发出控制器将执行的特定命令(方法)。因此,视图告诉控制器有人提交了表单:
控制器:
angular.module('myApp')
.controller('myController', ['$scope', function ($scope) {
$scope.submit = function () {
//process form here
}
}]);
视图:
提交表单
如您所见,我们将
submit()
方法“附加”到$scope
对象上,以便我们可以从视图中调用submit
。scope是Angular的一个组成部分,它实际上是ViewModel的另一个术语<button ng-click="submit()">Submit Form</button>