$ scope.this属性的目的?

时间:2013-09-01 10:36:00

标签: angularjs angularjs-scope

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

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

它的用例是什么?

1 个答案:

答案 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/进行演示。