2014-04-09 5 views

답변

3

예 그들은 DOM 요소에 저장됩니다. AngularJS는 the element API (aka JqLite)이라는 data() 방법을 사용하여 컨트롤러를 저장합니다.

나는 an example on JSFiddle을 만들었습니다.

myApp.directive('myDirective', function() { 
    return { 
     link: function(scope,element) { 
      scope.name = element.data('$ngControllerController').test(); 
     } 
    } 
}); 

function MyCtrl($scope) { 
    this.test = function() { 
     return "world"; 
    } 
} 

그리고 그래, 당신은 또한

angular.element('...').controller() 

에 액세스 할 수 있습니다하지만 당신은이에 대한 Batarang 필요하지 않습니다. 이 부분은 the element API입니다. 이는 액세스를 얻는 기본 방법입니다 (또는 require 속성을 사용하여 지시문을 만들 수 있습니다). 당신이

element.data('$scope') 
+0

확인을 통해 액세스를 얻을 수 있도록

BTW, 범위도, 이런 식으로 저장되어, 내가 대신 그것을 위해 당신의 말을합니다. ;) –

+0

STEVER의 코드 스 니펫은 또한 이것을 제안합니다. 그것을 작동시키기 위해서 그가 작성한 것과 일관성을 유지하려면 각도를 반환하기 전에 DOM 객체에 컨트롤러 참조를 추가해야합니다. –

관련 문제