AngularJS服务从其他服务返回数据

时间:2015-06-08 12:34:28

标签: angularjs angularjs-service

我想创建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();

它是空的。

1 个答案:

答案 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;
};