2016-11-24 28 views
0

の外に注入した場合のディレクティブのスコープにアクセスすることはできません私は(このgistからアイデアを得た)jQueryプラグイン内からの角度のマークアップを注入しています:ここで- ディレクティブが角度

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がインスタンス化されました。

私のquiz指令のscope(およびQuizController)へのアクセス方法は不思議です。

quiz.scope()と思っていましたが、これはscope変数に含まれる範囲を示しています。

ここにはplunkerがあります。

+0

私は 'QuizController'が私がプログラム的にやりとりする必要のあるIDを含むサーバからデータを取り出します。 – jsindos

+0

より良い方法であなたを助けるためにplunker..in命令を共有できますか? –

+0

プランナーを追加しました – jsindos

答えて

0

私はcomponentを作成していたので、分離スコープを作成していました。分離スコープのないdirectiveを作成すると、コントローラーは$compileによって返されたリンク関数に渡されたスコープにアタッチされます。

関連する問題