Mam aplikację AngularJS z controllers.js i factories.js.Sterownik AngularJS czekać na odpowiedź (lub ustawić oddzwonienie)
Co mi się podoba to zrobić coś z wartościami w sterowniku (który dostaję z fabryk). Mój problem polega na tym, że te wartości są puste w momencie, gdy mam do nich dostęp.
Jak mogę czekać na odpowiedź? Lub gdzie mogę dodać połączenie zwrotne?
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;
});
Co mi się podoba to zdobyć pierwszy samochód ($ scope.cards [0]) i zapisać go pod $ scope.card. Ale zawsze jest puste (to samo z kartami).
Z drugiej strony, jeśli wydrukuję rozmiar z częściowego widoku za pomocą (cards.length), otrzymam prawidłową wartość. .
Pozdrawiam i dzięki Marc
możliwy duplikat [Angular JS: jak powiązać z obietnicami] (http://stackoverflow.com/questions/13033118/angular-js-how-to- bind- to-promises) – lucuma
@lucama: z $ usługa zasobów inny problem – Guillaume86
Nadal możesz zwracać obietnice z zasobami, chociaż jest trochę inaczej. Oto przykład: http://beta.plnkr.co/edit/ZXGdN3eRP2yabYILeDay?p = podgląd – lucuma