Ich habe eine benutzerdefinierte Anweisung erstellt und möchte eine einfache variable Bindung durchführen. Wenn ich die Daten direkt einstelle, wird alles korrekt angezeigt, aber wenn ich meine Abfrage benutze, werden noch keine Daten gesetzt. Die Konsolenausgabe zeigt mir, dass die Variable zugewiesen wurde.Binding der Variable funktioniert nicht
Dies ist meine Richtlinie:
function tutorialCourse(){
return{
restrict: 'E',
templateUrl: 'app/tutorial/tutorialCourse.html',
controller: 'TutorialCourseController',
controllerAs: 'tutorial'
};
};
und dies ist mein Controller:
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)
});
};
}
mein html ist wirklich einfach:
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">{{tutorial.course.title}} </h4>
</div>
</div>
ich die Werte zurück bereits versucht in laodTutorial und verwenden Sie den Funktionsaufruf, um es direkt der Kursvariablen zuzuordnen, aber das hat nicht funktioniert. Aber wenn ich das tue
this.course = {id: 11, title: "Tutorial"}
alles funktioniert gut. Irgendeine Idee, was ich nicht verstehe oder falsch mache?
Schön, aber warum Rückkehr nicht das Ergebnis der Arbeit? Wie this.course = loadTutorial(); und in loadTutorial: Rückkehr _.first (Kurse) – x3lq
@ x3lq das würde nur funktionieren, wenn Sie eine Zusage von 'loadTutorial' Funktion zurückgeben. Und vergiss nicht, es zu lösen, wenn die "Abfrage" -Funktion gelöst ist. Aber dann wäre es ein Promise-Objekt, da 'ngResourece' das Antwortobjekt für Sie auspackt. –
okay danke. Ich muss mal drüber nachdenken; D sry, ich bin neu in diesem Bereich. – x3lq