Я пытаюсь повторно использовать данные из моего сервиса. По сути, у меня есть две акции index
и show
книги.
В индексе я извлекаю все книги (очевидно) и показываю, как обычно, я извлекаю только данную запись. Но я также хочу показать связанные книги, и для этого я хотел бы повторно использовать данные, запрошенные в действии индекса.
мой сервис таков:
angular.module('myapp').factory('book', ['$http', '$q',
function($http, $q) {
var values = [];
var book = {
getAll: function() {
var deferred = $q.defer();
return $http({
method: 'GET',
url: '/books.json'
}).success(function(data, status){
values = data;
deferred.resolve(data);
})
return deferred.promise;
},
get: function(id){
return $http({
method: 'GET',
url: '/books/' + id + '.json'
})
},
getValues: function(){
return values;
}
}
return book;
}]);
и в моем ShowBookController
я вызываю эту функцию:
getBook();
function getBook(){
var promise = book.get(currentBook);
promise.then(function(book){
$scope.book = book.data[0];
})
console.log(book.getValues())
}
Но console.log печатает пустой массив.