【问题标题】:Using JSON response in more than one controller with angularjs使用 angularjs 在多个控制器中使用 JSON 响应
【发布时间】:2015-03-11 08:37:59
【问题描述】:
我的网站是一个发布网站,其中包含来自不同国家/地区的帖子。在主页加载时,我将进行服务调用并使用控制器($http)获取所有帖子,并将显示在主页上。
主页上有两个下拉菜单和一个按钮,用户可以从中选择或按国家和主题过滤帖子,结果将在不同的页面中。
我想使用相同的控制器响应数据而不进行新的服务调用来过滤响应并显示结果。
请帮助我了解如何使用同一个控制器,还是我需要使用工厂,然后将工厂作为我的控制器的依赖项??
【问题讨论】:
标签:
json
angularjs
angularjs-scope
angularjs-ng-repeat
angularjs-service
【解决方案1】:
最好的方法是使用Service。 Service 是一个 Singleton,这意味着构造只会发生一次。在 Service 构造函数中,您将加载帖子,并且您可以从任何控制器访问您的数据。
angular.module('myApp').service('myPostService', function($http) {
var Service = {
postList: []
};
// Here load over $http service your posts and then put it into Service.postList.
return Service;
});
然后注入服务并使用帖子
angular.module('myApp').controller('HomeCtrl', function(myPostService) {
$scope.postList = Service.postList;
});
然后在 HTML 中迭代它,过滤并做任何你想做的事情。