1

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

 $scope.mymodel = somevalue;

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

在控制器中:

var vm =this;

vm.something = somevalue;

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

4

1 回答 1

0

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

于 2013-11-14T21:50:57.280 回答