私はカスタムディレクティブを作成しました。私は単純な変数バインディングを実行したいと思います。データを直接設定すると、すべてが正しく表示されますが、クエリを使用してもデータは設定されていません。コンソール出力から、変数が割り当てられたことがわかります。変数のバインドが動作しない
これは私のディレクティブです:
function tutorialCourse(){
return{
restrict: 'E',
templateUrl: 'app/tutorial/tutorialCourse.html',
controller: 'TutorialCourseController',
controllerAs: 'tutorial'
};
};
、これは私のコントローラです:
TutorialCourseController.$inject = ['$q', 'Course'];
function TutorialCourseController($q, Course){
this.course = {};
loadTutorial();
function loadTutorial(){
Course.query().$promise.then(function(courses){
this.course = _.first(courses);
console.log(this.course)
});
};
}
私のHTMLは本当に簡単です:
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">{{tutorial.course.title}} </h4>
</div>
</div>
私はすでに内の値を返すようにしようとしましたlaodTutorialを呼び出し、関数呼び出しを使用してコース変数に直接割り当てますが、それは機能しませんでした。しかし、私がこれをすれば、
this.course = {id: 11, title: "Tutorial"}
すべてがうまくいきます。私が理解していない、または間違っていることは何ですか?
ニースが、なぜ結果の仕事を返さなかったへの参照?同様に this.course = loadTutorial(); とloadTutorial中:あなたは 'loadTutorial'機能からの約束を返す場合にのみ動作しますx3lq @(コース) – x3lq
_.first リターン。そして、 'query'関数が解決されたときにそれを解決することを忘れないでください。しかし、それは 'ngResourece'が応答オブジェクトをunwrapするので、Promiseオブジェクトになります。 –
大丈夫です。それを見なければならない;私はこれに新しいです。 – x3lq