2013-09-01 2 views
2

UPDATE : angular 1.3.0-rc4 제거 $ scope.this이 commit

$ 범위의 각 인스턴스를 볼 수는 자신을 다시 지적이라는 속성이 있습니다. 는 현재 (1.2.0rc1)는 (/ 공공 보호) $ 접두사 또는 $$을 (내부) 그래서 그것이 각도 특정 부동산 있다고 암시하지 않습니다 아니에요.

사용 사례는 무엇입니까?

+0

콘솔의 스코프에서'this '를 본 적이 있지만 결코 그것에 대해 많이 생각하지 않았습니다. 테스트 (https://github.com/angular/angular.js/blob/44ad61e56c04f445d059048838d8de3adbc63090/test/ng/rootScopeSpec.js#L46-50)도 존재합니다. 즉, 나는 그것을 코드베이스에서 사용할 수 없다. 매우 흥미로운! –

답변

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/을 참조하십시오.

+0

나는 그 자신을 생각했지만 어떤 공식 예제에서도 {{this.prop}}을 사용하는 예제는 본 적이 없으며 어디에서 유용 할 수 있는지 알지 못합니다. –

+0

그래, 그 사양 이외에, 나는 그것을 사용한 적이 본 적이 없어. '$ eval'을 호출하고 함수를 전달하면 어쩌면'this'를 사용하는 외부 라이브러리를 사용해도 유용 할 것입니다. 좀 더 근본적인 수준에서, * 정규 * JavaScript 실행 컨텍스트가 항상 'this'를 사용할 수 있기 때문에 스코프 평가에서 this를 지원하는 것이 합리적이라고 생각합니다. –

+0

해답을 가져 주셔서 감사합니다. 나는 이것을 잠시 동안 열어 둔 채로 할 것입니다. 아마 우리는 운이 좋을 것이고 내부의 (앵귤러 팀) 지식을 가진 누군가는 이것을 볼 것입니다. –

관련 문제