Ich habe eine AngularJS-Anwendung mit einer controllers.js und factories.js.AngularJS Controller auf Antwort warten (oder Callback setzen)
Was ich mag ist, etwas mit den Werten in der Steuerung (die ich von den Fabriken bekomme) zu tun. Mein Problem ist, dass diese Werte zum Zeitpunkt des Zugriffs leer sind.
Wie kann ich auf die Antwort warten? Oder wo kann ich einen Rückruf hinzufügen?
Flashcards.controller('CardDeckDetailController', function($scope, $routeParams, CardDeckService, CardService) {
$scope.carddeck = CardDeckService.findCardDeckByID($routeParams.cardDeckID);
$scope.cards = CardService.findCardsByCardDeckID($routeParams.cardDeckID);
$scope.card = $scope.cards[0];
$scope.cardLength = $scope.cards.length;
});
Flashcards.factory('CardDeckService', function($resource) {
var cardDeckService = $resource('/FlashcardsServer/rest/carddecks/:cardDeckID', {}, {});
cardDeckService.findAllCardDecks = function() {
return cardDeckService.query();
};
cardDeckService.findCardDeckByID = function(id) {
return cardDeckService.get({ cardDeckID : id });
};
return cardDeckService;
});
Ich mag es, das erste Auto ($ scope.cards [0]) und es unter $ scope.card speichern. Aber es ist immer leer (selbe mit cardsLength).
Auf der anderen Seite, wenn ich die Größe aus der Teilansicht mit (cards.length) ausdrucken, bekomme ich den richtigen Wert. .
Greets und Dank Marc
mögliche Duplikate von [Angular JS: wie man an Versprechen bindet] (http://stackoverflow.com/questions/13033118/angular-js-how-to-bind-to-promises) – lucuma
@lucama: mit dem $ Ressourcen-Service Es ist ein anderes Problem – Guillaume86
Sie können immer noch Versprechungen mit einer Ressource zurückgeben, obwohl es ein wenig anders ist. Hier ist ein Beispiel: http://beta.plnkr.co/edit/ZXGdN3eRP2yabYILeDay?p = Vorschau – lucuma