2

更新angular 1.3.0-rc4删除了 $scope.this 请参阅提交

$scope的每个实例都有一个名为this的属性,它指向自身。目前(1.2.0rc1)它没有以$public/protected)或$$internal)为前缀,因此它没有暗示它是一个特定于角度的属性。

它的用例是什么?

4

1 回答 1

1

这个问题让我在代码库中寻找解释;我终于从一个旧测试中得到了提示。

由于 AngularJS 表达式是在作用域的上下文中计算的,因此作用域需要有一个this引用自身的属性,以便包含工作的表达式。this举个例子:

<div ng-controller="FirstController">
  `this.num` (with normal scope): {{this.num}}
</div>

<div ng-controller="SecondController">
  `this.num` (with scope.this removed): {{this.num}}
</div>
app = angular.module('myApp', []);

app.controller('FirstController', function($scope) {
  $scope.num = 10;
});

app.controller('SecondController', function($scope) {
  delete $scope['this'];
  $scope.num = 10;
});

第二个例子不起作用;请参阅http://jsfiddle.net/BinaryMuse/mzbpz/进行演示。

于 2013-09-01T17:34:47.437 回答