我无法在控制器中获取当前的用户ID。我有这个:

controller.js:

constructor(Auth) {
    this.getCurrentUser = Auth.getCurrentUserSync;
    // console.log(this.getCurrentUser()._id) returns undefined
  }


但是,如果我在html中打印:

p {{ctrl.getCurrentUser()._id}}


我完全得到了用户ID。

为什么会这样?如何获得控制器中的用户ID?

编辑:

Auth.getCurrentUser()函数如下所示:

function getCurrentUser(callback) {
          var value = _.get(currentUser, '$promise') ? currentUser.$promise : currentUser;

          return $q.when(value).then(function (user) {
            safeCb(callback)(user);
            return user;
          }, function () {
            safeCb(callback)({});
            return {};
          });
        }

最佳答案

就像这样访问

console.log($$state.value.data._id);


演示


var userinfo = { $$state: {
   status: 1,
    value: {
          data: {
           __v: 0,
          _id: "596b33283055cd0f2442cd85"
           }
         }
    }
}

console.log(userinfo.$$state.value.data._id);

10-06 11:57