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;
});

2 番目の例は機能しません。デモンストレーションについては、http://jsfiddle.net/BinaryMuse/mzbpz/を参照してください。

于 2013-09-01T17:34:47.437 に答える