之前已经问过这个问题,但这更多的是使用什么样的风格。目前我们有几个不同的控制器,我们不断进行REST调用以获取信息。例如,$http.get('/allusers')
。在我们进行此调用之后,我们创建一个用户映射来访问这些用户。它工作得很好但我不喜欢每当我们需要来自不同控制器的用户信息时我们必须手动执行此操作。
我想要的是一个共享对象,它将所有用户信息作为地图和共享函数进行调用并创建/更新地图。
这是我开始感到困惑的地方。解决这个问题的最佳和有效方法是什么?
答案 0 :(得分:0)
您可能想拥有工厂或服务 我试图在这里解释一下: https://stackoverflow.com/a/39933229/1005137
您可能还希望使用以下内容缓存来自$ http请求的响应: https://docs.angularjs.org/api/ng/service/$cacheFactory
希望这会有所帮助。
答案 1 :(得分:0)
在这种情况下,service
适合使用。这将允许您将其注入控制器,指令和组件。
angular
.module('myApp')
.service('userService', UserService);
UserService.$inject = ['$http'];
function UserService ($http) {
var service = this;
service.getAllUsers = function () {
return $http.get('/allusers');
}
}
这将允许您在控制器中注入和使用
function UserController(userService) {
userService.getAllUsers().then(function (response) {
// response.data has your goods
});
}