即使不在console.log中,该值也为null(...)

时间:2018-06-20 12:51:46

标签: javascript jquery angular typescript

我正在使用Angular,并且尝试访问我的对象的属性img,并且在执行整个对象的console.log(..)时。值在那里,但是当我对对象的属性进行c onsole.log(..)时,它说它为空。

console.log("Product:", this.article);
var url = this.article.img;
console.log("Image" , url);

控制台:

enter image description here

enter image description here

如果this.article.img,我不知道怎么办;在console.log中似乎具有某些价值。但是当我尝试访问它时,它说它为空。怎么来的?

3 个答案:

答案 0 :(得分:5)

该对象不会立即呈现。您的img属性在记录时具有一个null值,但是稍后在控制台中打开该对象时,该属性将被填充。

您可以通过登录console.log(JSON.stringify(this.article))进行检查。

出现问题的最可能原因是一些异步代码,您没有正确等待其成就。正如您所说的那样,该对象是从数据库中获取的,我想您会忘记在回调中使用该对象(可能基于Promise)。

答案 1 :(得分:1)

代替日志记录:

P

尝试debugging,以便您可以实时检查该值:

console.log("Product:", this.article);
var url = this.article.img;
console.log("Image" , url);

答案 2 :(得分:-1)

因为浏览器控制台可以在大多数现代客户端中使用引用:

  

请注意,如果您在最新版本的Chrome和Firefox中记录对象,则在控制台上登录的内容是对该对象的引用,这不一定是您当时的对象的“值”调用console.log(),但这是单击对象时打开该对象时的值。

请参阅:https://developer.mozilla.org/en-US/docs/Web/API/Console/log