我的网站是发布网站,其中包含来自不同国家/地区的帖子。在主页加载时,我将进行服务呼叫并使用控制器($ http)获取所有帖子,并将显示在主页上。
在主页中有两个下拉菜单和一个按钮,用户可以根据国家和主题选择或过滤帖子,结果将显示在不同的页面中。
我想使用相同的控制器响应数据而不进行新的服务调用来过滤响应并显示结果。
请帮助我如何使用相同的控制器,或者我是否需要使用工厂,然后将工厂作为我的控制器的依赖工具?
答案 0 :(得分:1)
最好的方法是使用Service
。 Service
是一个Singleton,这意味着构造只会发生一次。在服务构造函数中,您将加载帖子,并从任何控制器中访问您的数据。
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中迭代它,过滤并做任何你想做的事。