我正在尝试重复使用我服务中的数据。基本上,我有两个行为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会打印一个空数组。
答案 0 :(得分:1)
我认为你可以将console.log(book.getValues())
移到回调中,因为get是一个异步的api调用。
我希望有帮助