控制器中的$ scope如何工作以及声明控制器的不同方式?

时间:2013-11-14 21:37:28

标签: angularjs

我正在看一些控制器如何在角度工作的样本,我看到两种声明它们的方法,一种只有控制器名称,一种只有“as somename”。使用ng-controller =“myController”的示例在定义控制器时将$ scope作为依赖项。 然后在$ scope上设置模型,就像这样

 $scope.mymodel = somevalue;

使用“as”语法(例如ng-controller =“MyControler as vm”)的示例在设置模型时从不使用$ scope,而是将其分配给“this”并使用{{vm.something}}进行绑定。 / p> 控制器中的

var vm =this;

vm.something = somevalue;

第二个例子是如何工作的?这是最新版本的新方法吗?

1 个答案:

答案 0 :(得分:0)

使用“as”语法将整个控制器暴露给您的视图。在我看来,这是一种不好的做法。虽然我不确定哪一个更好的性能,但在javascript中使用'this'已经有很多问题,我不建议为'this'增加另一个含义。所以我会坚持使用$ scope(因为这也是他们在文档中使用的内容)。 如果您想了解有关“as”语法如何工作的更多背景信息,请参阅此主题:'this' vs $scope in AngularJS controllers