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

我有2个架构:


图表


标题:字符串
数据集:数组
_creator:登录的用户ID

使用者


名称
电子邮件
_ID



当我console.log时,当前用户返回


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


但是当我尝试控制台_id时:

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


退货


  未定义


有人可以解释我在做什么错吗?

最佳答案

chrome控制台中的对象仅在首次打开时才进行评估。

这意味着当您console.log一个对象,例如Auth.getCurrentUser()的返回值时,控制台会显示对该对象的引用-在日志调用时,该对象包含一个promise对象,但是打开时最有可能解决该问题。它在控制台上,因此您可以查看所需的属性。

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

关于干净代码的注释:您的作用域变量称为getCurrentUser,这使人认为它是一个getter函数,但实际上它是getter函数的返回值。这很混乱。

10-05 20:44