Angular-fullstack获取当前用户ID

时间:2015-03-10 14:13:02

标签: javascript jquery angularjs node.js mongodb

我正在使用https://github.com/DaftMonk/generator-angular-fullstack

我有2个架构:

  • 图表
    • title:String
    • 数据集:数组
    • _creator:登录用户ID
  • 用户
    • 名称
    • 电子邮件
    • _id

当我在console.log中时,当前用户返回 enter image description here

$scope.getCurrentUser = Auth.getCurrentUser();        
console.log($scope.getCurrentUser);

但是当我尝试控制日志_id:

$scope.getCurrentUser = Auth.getCurrentUser();        
console.log($scope.getCurrentUser._id);

返回

  

未定义

有人可以解释我做错了吗?

1 个答案:

答案 0 :(得分:4)

Chrome控制台中的对象仅在首次打开时才会被评估。

这意味着当你在console.log中返回一个类似返回值Auth.getCurrentUser()的对象时,控制台会显示对它的引用 - 这在日志调用时包含一个promise对象,但很可能已经解决了当你在控制台上打开它时,你就会看到你正在寻找的属性。

另一方面,当您记录$scope.getCurrentUser._id时,这是对promise对象进行属性查找的结果 - 它会打印属性的当前值,即undefined。< / p>

关于干净代码的注释:你的范围变量叫做getCurrentUser,这让人觉得它是一个getter函数,但实际上它是一个getter函数的返回值。这很令人困惑。