更新:angular 1.3.0-rc4删除了 $scope.this 请参阅提交
$scope的每个实例都有一个名为this的属性,它指向自身。目前(1.2.0rc1)它没有以$(public/protected)或$$(internal)为前缀,因此它没有暗示它是一个特定于角度的属性。
它的用例是什么?
更新:angular 1.3.0-rc4删除了 $scope.this 请参阅提交
$scope的每个实例都有一个名为this的属性,它指向自身。目前(1.2.0rc1)它没有以$(public/protected)或$$(internal)为前缀,因此它没有暗示它是一个特定于角度的属性。
它的用例是什么?
这个问题让我在代码库中寻找解释;我终于从一个旧测试中得到了提示。
由于 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/进行演示。