Possiedo un'applicazione AngularJS con controllerres.js e factories.js.Il controller AngularJS attende la risposta (o imposta la richiamata)
Quello che mi piace è fare qualcosa con i valori nel controller (che ottengo dalle fabbriche). Il mio problema è che questi valori sono vuoti nel momento in cui li accedo.
Come posso attendere la risposta? O dove posso aggiungere una richiamata?
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;
});
Quello che mi piace è quello di ottenere la prima vettura ($ scope.cards [0]) e salvarlo sotto $ scope.card. Ma è sempre vuoto (uguale a cardsLength).
D'altra parte se stampo la dimensione dalla vista parziale con (cards.length), ottengo il valore corretto. .
saluta e Grazie Marc
possibile duplicato di [JS angolare: come legare alle promesse] (http://stackoverflow.com/questions/13033118/angular-js-how-to-bind-to-promises) – lucuma
@lucama: con $ il servizio risorse è un altro problema – Guillaume86
È ancora possibile restituire promesse con una risorsa sebbene sia leggermente diversa. Ecco un esempio: http://beta.plnkr.co/edit/ZXGdN3eRP2yabYILeDay?p = preview – lucuma