假设我有一个站点,其中每个 Controller 都将依赖于“用户”对象。所以我为 Controller 创建了一个用户服务来获取这些数据:
myApp.factory('UserService', function ($http) {
var user = { Id: 1, Name: 'Test' };
return {
User: user
};
});
我的 Controller 看起来像这样:
myApp.controller('SearchController', function ($scope, UserService) {
$scope.User = UserService.User;
})
我的问题是,假设现在我们需要从 $http
调用中提取数据(然后在传递给 Controller 之前对返回的数据进行操作)并且几乎每个 Controller 都在进行需要这些数据(所以让他们每个人都操纵它没有意义),我该如何实现它?
我将围绕有关 promises 的示例进行循环,因此我对处理此问题的正确方法感到困惑。理想情况下,我只需要一种方法在填充任何 Controller / View 之前解析此数据
最佳答案
我会避免让服务做这样的事情,因为让服务保持状态通常是不好的形式(这是有争议的Should an Angular service have state?)
我在我最近的应用程序中解决了这个问题,方法是在获取用户的根作用域上创建一个函数,并在我需要了解用户时调用该函数。
关于angularjs - 在 AngularJS 服务中阻止 $http?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20887853/