【发布时间】:2013-03-25 16:25:20
【问题描述】:
我有以下 Angular 应用的服务模块。
angular.module('rs.services', [])
.value('uid', null)
.factory('login', ['$http', 'uid', function($http, uid) {
return function(user, pass) {
var p = $http.post('/login', {"user": user, "pass": pass})
.success(function(data, status, headers, config) {
// set uid
})
.error(function(data, status, headers, config) {
// do something
});
return p;
}
}]);
// a service that uses uid to authenticate the request
.factory('userPrefs' ['$http', 'uid', function($http, uid) {
return function() {
return $http.post('/user/prefs', {"uid": uid});
}
}]);
用户登录后,login 服务返回一个唯一的会话 id,我想设置模块的uid 值以供其他服务调用参考。
我很确定上面的代码不会工作,因为我不能在模块的配置阶段使用值作为依赖项。如何在login 服务中设置uid 值并在模块内的其他服务中访问它,或者如果这不可能,我如何创建一个可以通过这些服务设置/获取的值?
【问题讨论】:
标签: angularjs angularjs-service