我正在看一些控制器如何在角度工作的样本,我看到两种声明它们的方法,一种只有控制器名称,一种只有“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;
第二个例子是如何工作的?这是最新版本的新方法吗?
答案 0 :(得分:0)
使用“as”语法将整个控制器暴露给您的视图。在我看来,这是一种不好的做法。虽然我不确定哪一个更好的性能,但在javascript中使用'this'已经有很多问题,我不建议为'this'增加另一个含义。所以我会坚持使用$ scope(因为这也是他们在文档中使用的内容)。 如果您想了解有关“as”语法如何工作的更多背景信息,请参阅此主题:'this' vs $scope in AngularJS controllers