更新:angular 1.3.0-rc4删除了$ scope.this,请参阅commit
$ scope 的每个实例都有一个名为 this 的属性,该属性指向自身。 目前( 1.2.0rc1 )它没有前缀 $ ( public / protected )或 $$ (内部)所以它没有暗示它是一个特定角度的属性。
它的用例是什么?
答案 0 :(得分:1)
这个问题让我通过代码库来解释一下;我终于从an old test得到了一个提示。
由于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/进行演示。