Tôi có ứng dụng AngularJS với bộ điều khiển.js và factories.js.Bộ điều khiển AngularJS chờ phản hồi (hoặc thiết lập gọi lại)
Điều tôi thích là làm điều gì đó với các giá trị trong bộ điều khiển (mà tôi nhận được từ các nhà máy). Vấn đề của tôi là, những giá trị này trống vào thời điểm tôi truy cập chúng.
Tôi có thể đợi phản hồi bằng cách nào? Hoặc tôi có thể thêm một cuộc gọi lại ở đâu?
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;
});
Điều tôi muốn là nhận chiếc xe đầu tiên ($ scope.cards [0]) và lưu nó dưới $ scope.card. Nhưng nó luôn trống rỗng (giống với cardsLength).
Mặt khác, nếu tôi in kích thước từ chế độ xem một phần bằng (cards.length), tôi nhận được giá trị chính xác. .
Greets và cám ơn Marc
bản sao có thể có của [Angular JS: cách liên kết với lời hứa] (http://stackoverflow.com/questions/13033118/angular-js-how-to-bind-to-promises) – lucuma
@lucama: với $ dịch vụ tài nguyên đó là một vấn đề khác nhau – Guillaume86
Bạn vẫn có thể trả lại lời hứa bằng tài nguyên mặc dù nó hơi khác một chút. Đây là một ví dụ: http://beta.plnkr.co/edit/ZXGdN3eRP2yabYILeDay?p = xem trước – lucuma