javascript console.log在同一对象上显示不同的值

时间:2013-05-15 17:03:34

标签: javascript angularjs console.log

我正在开发一个AngularJS应用程序。当我在console.log中找到一个对象(指令链接函数的attrs参数)时,浏览器会显示参数“editable”的不一致结果(参见图片)。在Chrome中,该属性被视为“zzz”和undefined(参见第5行与第1行)。在Safari中,输出显示不同,但在console.log(对象)上,“editable”属性显示为“zzz”,而在console.log(object.editable)上,属性未定义。

任何提示?

我认为此问题与:console.log() showing contradictory values for the same object property

有关

console bug?

1 个答案:

答案 0 :(得分:3)

我猜你的HTML就是这样的

<div my-directive editable="{{someScopeProperty}}"...></div>

并且您在链接功能中调用了console.log()。当链接函数运行时,尚未定义插值属性(您需要使用$observe$watch来异步获取插值),因此如果您尝试使用undefined,您将获得{{1}}记录该值。不久之后,值被定义,Chrome似乎会在您记录完整对象的控制台(而不仅仅是单个值)中自动更新值(我认为这实际上是一个参考)。