2016-11-24 2 views
0
나는 jQuery 플러그인 내에서 각도 마크 업을 주입하고

의 외부 주입 지침의 범위를 액세스 할 수 없습니다 (이 gist에서 아이디어를 얻었다) :각도 - 지시어 각도

여기
var $place = this.$el.find('.medium-insert-active'); 
Angular.element($place).injector().invoke(function($compile) { 
    var scope = Angular.element(document.getElementById('editor-container')).scope(); 
    $place.html($('<quiz/>')); 
    var quiz = $compile($place.contents())(scope); 
    scope.$digest(); 
}); 

quiz 지침입니다 :

const quiz = { 
    controller: QuizController, 
    controllerAs: 'qm', 
    template: require('./quiz.html'), 
} 

이 성공적으로 DOM에 내 지시를 컴파일하고 QuizController을 인스턴스화합니다.

quizscope (및 QuizController)에 액세스하는 방법을 궁금합니다.

나는 quiz.scope()이 될 것이라고 생각했지만, 이것은 scope 변수에 포함 된 범위를 제공합니다.

여기는 plunker입니다.

+0

'QuizController'는 프로그래밍 방식으로 상호 작용해야하는 ID가 포함 된 서버의 데이터를 가져옵니다. – jsindos

+0

더 나은 방법으로 당신을 도우려고 plunker..in 명령을 사용할 수 있습니까 –

+0

플 런커를 추가했습니다. – jsindos

답변

0

나는 component을 생성하면서 격리 범위를 생성하고있었습니다. 격리 범위가없는 directive을 대신 작성하면 $compile이 반환하는 연결 함수에 전달 된 범위에 컨트롤러가 연결됩니다.