在 angularjs 的多个控制器中使用 JSON 响应
Using JSON response in more than one controller with angularjs
我的网站是一个发布来自不同国家的帖子的网站。在主页加载时,我将调用服务并使用控制器 ($http) 获取所有帖子,并将显示在主页上。
主页中有两个下拉菜单和一个按钮,用户可以从中选择或按国家和主题过滤帖子,结果将在不同的页面中。
我想使用相同的控制器响应数据而不进行新的服务调用来过滤响应并显示结果。
请帮助我如何使用相同的控制器,或者我是否需要使用工厂然后将工厂作为我的控制器的依赖项?
最好的方法是使用 Service
。 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 中对其进行迭代、过滤并执行任何你想做的事情。
我的网站是一个发布来自不同国家的帖子的网站。在主页加载时,我将调用服务并使用控制器 ($http) 获取所有帖子,并将显示在主页上。
主页中有两个下拉菜单和一个按钮,用户可以从中选择或按国家和主题过滤帖子,结果将在不同的页面中。
我想使用相同的控制器响应数据而不进行新的服务调用来过滤响应并显示结果。
请帮助我如何使用相同的控制器,或者我是否需要使用工厂然后将工厂作为我的控制器的依赖项?
最好的方法是使用 Service
。 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 中对其进行迭代、过滤并执行任何你想做的事情。