我正在使用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函数的返回值。这很混乱。