Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使值为';s不在console.log中(…)_Javascript_Jquery_Angular_Typescript - Fatal编程技术网

Javascript 即使值为';s不在console.log中(…)

Javascript 即使值为';s不在console.log中(…),javascript,jquery,angular,typescript,Javascript,Jquery,Angular,Typescript,我使用Angular,试图访问对象的属性img,当我对整个对象执行console.log(…)时。值存在,但当我对对象的属性执行console.log(..)时,它说它为null console.log("Product:", this.article); var url = this.article.img; console.log("Image" , url); 控制台: 如果this.article.img,我不知道这怎么可能;似乎在控制台.log中有一些值。但是当我试图访问它时,它

我使用Angular,试图访问对象的属性img,当我对整个对象执行
console.log(…)
时。值存在,但当我对对象的属性执行c
onsole.log(..)
时,它说它为null

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


如果
this.article.img
,我不知道这怎么可能;似乎在控制台.log中有一些值。但是当我试图访问它时,它说它是空的。为什么

对象不会立即渲染。您的
img
属性在日志记录时有一个
null
值,但当您在控制台中打开对象时,它会被填充

您可以通过记录
console.log(JSON.stringify(this.article))
来检查这一点


您的问题最可能的原因是一些异步代码,您没有正确地等待它们的实现。正如您所说,由于对象是从数据库中获取的,我猜您忘记了在回调中使用对象(可能是基于承诺的)。

对象不会立即呈现。您的
img
属性在日志记录时有一个
null
值,但当您在控制台中打开对象时,它会被填充

您可以通过记录
console.log(JSON.stringify(this.article))
来检查这一点

您的问题最可能的原因是一些异步代码,您没有正确地等待它们的实现。正如您所说,由于对象是从数据库中获取的,我猜您忘记了在回调中使用对象(可能是基于承诺的)。

而不是记录:

console.log("Product:", this.article);
var url = this.article.img;
console.log("Image" , url);
请尝试,以便您可以实时检查值:

console.log("Product:", this.article);
debugger;
...
而不是记录:

console.log("Product:", this.article);
var url = this.article.img;
console.log("Image" , url);
请尝试,以便您可以实时检查值:

console.log("Product:", this.article);
debugger;
...

因为浏览器控制台与大多数现代客户端中的引用一起工作:

请注意,如果您在最新版本的Chrome和Firefox中记录对象,那么您在控制台上记录的是对该对象的引用,它不一定是您调用console.log()时该对象的“值”,而是您单击该对象打开时该对象的值


请参阅:

,因为浏览器控制台与大多数现代客户端中的引用一起工作:

请注意,如果您在最新版本的Chrome和Firefox中记录对象,那么您在控制台上记录的是对该对象的引用,它不一定是您调用console.log()时该对象的“值”,而是您单击该对象打开时该对象的值


请参阅:

为什么有两个图像?你能造一个MCVE吗?也可以尝试
console.dir
Article.type,这是我的数据库实体模型,我应该发布articles类型定义吗?Article对象是否有需要使用的getter?这篇文章是你写的还是来自某个图书馆?某些库中的某些模型要求您使用它们的getter而不是“.”。为什么有两个映像?你能造一个MCVE吗?也可以尝试
console.dir
Article.type,这是我的数据库实体模型,我应该发布articles类型定义吗?Article对象是否有需要使用的getter?这篇文章是你写的还是来自某个图书馆?某些库中的某些模型要求您使用它们的getter而不是“.”。
console.log(JSON.stringify(this.article))
确实将img显示为null,而
console.log(this.article)
没有,这怎么可能?这不是问题所在。他所需要做的就是通过这个.article.img[0]@billy_56访问它,这是因为当你点击左边的小三角形时,控制台中的大对象就会被渲染出来。它们可能在记录之后发生了更改。@billy_56这是因为变量通过引用传递到
console.log
。使用类似于
JSON.stringify
的构造创建类型为
string
的新局部变量上下文。但是,如果仅使用
console.log
打印变量,它将始终输出存储在内存中的当前变量值。
console.log(JSON.stringify(this.article))
确实将img显示为null,而
console.log(this.article)
不显示,这怎么可能?这不是问题所在。他所需要做的就是通过这个.article.img[0]@billy_56访问它,这是因为当你点击左边的小三角形时,控制台中的大对象就会被渲染出来。它们可能在记录之后发生了更改。@billy_56这是因为变量通过引用传递到
console.log
。使用类似于
JSON.stringify
的构造创建类型为
string
的新局部变量上下文。但是,如果您仅使用
console.log
打印变量,它将始终输出当前变量值,因为它存储在内存中。我不确定这是否应该被否决,尤其是在没有注释的情况下。这不是一个真正的答案,但这是一个很好的建议。我不确定这是否应该被否决,尤其是在没有评论的情况下。这不是一个真正的答案,但它是一个很好的建议。