我想创建AngularJS服务以从其他服务返回数据。
我尝试使用此代码:
'use strict';
angular.module('angularDjangoRegistrationAuthApp')
.service('currentUser', function (djangoAuth) {
var that = this;
djangoAuth.profile().then(function(data) {
that.username = data.username;
});
this.getUsername = function() {
return this.username;
};
});
但是当我试图从控制器获取这样的用户名时:
$scope.username = currentUser.getUsername();
它是空的。
答案 0 :(得分:0)
在currentUser服务中,您将通过
设置用户名that.username = data.username;
但是在this.getUsername方法中,您将使用未定义的this.username返回它。所以尝试将其改为
djangoAuth.profile().then(function(data) {
this.username = data.username;
});
如果djangoAuth服务正确地使用配置文件方法获取数据,则此代码应该可以正常工作
OR 您也可以更改以下代码:
this.getUsername = function() {
return that.username;
};