控制器$范围与此相对

时间:2016-04-03 20:34:04

标签: angularjs

我对Angular很新,所以请原谅我的补救问题。我已经简要地搜索了一下答案,但似乎找不到直接相关的答案。

在大多数示例中,我看到$scope传递给控制器​​,但有些地方他们在控制器功能对象本身上使用this来存储模型状态。使用一个比另一个有什么好处吗?

这两个似乎表现的方式相同,但我很好奇其中一个是否有益于另一个。

var myApp = angular.app('MyApp', []);
myApp.controller('PersonController', function() {
  this.name = 'Bob';

  this.setName = function(name) {
    this.name = name;
  };
});

myApp.controller('PersonController1', ['$scope', function($scope) {
  $scope.name = 'Bob';

  $scope.setName = function(name) {
    $scope.name = name;
  };
});

最大的区别似乎是在视图中使用它们 - 只使用名称访问$scope属性,而当控制器使用自身来存储状态时,必须使用点符号来访问它。 / p>

<div ng-controller="PersonController as pc">
  {{pc.name}}
</div>

<div ng-controller="PersonController1 as pc">
  {{name}}
</div>

差异只是味道问题吗?或者,如果我选择一种方法而不是另一种方法,还会有其他事情发生吗?

0 个答案:

没有答案