我有一个非常简单的工厂:
.factory('NewsHandler', function ($http) {
return $http.get('http://server.com/feed/news.json');
});
在我的偏见中,我这样称呼这个工厂:
$scope.news;
NewsHandler.success(function(data) {
$scope.news = data;
});
似乎工厂只在应用加载后才会调用。每次我从一个部分转到另一个部分再回来时,我都试图让它加载。我怎样才能确保发生这种情况?
答案 0 :(得分:1)
Angular服务是单例,并在首次检索后由注入器缓存。使用您的代码,$http.get('http://server.com/feed/news.json');
返回的值将在整个应用程序中缓存并重复使用。
尝试这样的事情:
.factory('NewsHandler', function ($http) {
return {
get: function() {
return $http.get('http://server.com/feed/news.json');
}
};
});
$scope.news;
NewsHandler.get().success(function(data) {
$scope.news = data;
});
答案 1 :(得分:0)
.factory('NewsHandler', function ($http) {
return function(){return $http.get('http://server.com/feed/news.json')};
});
$scope.news;
NewsHandler.success(function(data) {
$scope.news = data();
});
asuming data is your service