我想在angular.module中使用服务。
record.js
我有一个RecordCtrl
,我希望使用requestCurrentUser
中存在的sessionService.js
功能。我使用Session
来获取控制器和服务之间的传递数据。我通过record,js
函数从requestCurrentUser
发送请求,如下所示:
'use strict';
var app = angular.module('app');
app.controller('RecordCtrl',['$scope','Session','Records',function($scope, Session, Records){
$scope.user = Session.requestCurrentUser();
}]);
我在sessionService.js
中收到此信息,如下所示:
'use strict';
angular.module('sessionService', [])
.factory('Session', function($location, $http, $q) {
var service = {
requestCurrentUser: function() {
return $http.get('/api/users').then(function(response) {
service.currentUser = response.data.user;
return service.currentUser;
);
}
},
currentUser: null,
return service;
});
我可以在requestCurrentUser
中正确获取数据,但我无法在record.js
中收到此数据。当我在sessionService.js
中回显数据时,我可以看到以下数据:
Object {id: 2, email: "mgh@mgh.com", created_at: "2014-08-11T08:37:59.981Z", updated_at: "2014-08-26T08:03:27.702Z"}
但是我无法在record.js
中收到这些数据,我得到一个如下所示的空对象:
[object Object]
我认为我在2 Session
文件(js
和record.js
)中使用的代码问题大约为sessionService.js
。对于添加依赖项,我有app.js
包含对此的依赖性。
app.js
:
'use strict';
angular.module('app',['ngRoute', 'ngResource', 'sessionService', 'recordService'])
我找不到问题,我通过以下代码将sessionService.js
添加到record.js
:
app.service('sessionService');
但问题不在于解决。我不知道如何解决这个问题?任何人都有解决这个问题的想法吗?
答案 0 :(得分:2)
可以修改如下:
'use strict';
var app = angular.module('app');
app.controller('RecordCtrl',['$scope','Session','Records',function($scope, Session, Records){
Session.requestCurrentUser().then(function(data) {
$scope.user = data;
});
}]);