我正在开发 AngularJS 应用程序。当我 console.log 一个对象(指令链接函数的 attrs 参数)时,浏览器显示参数“可编辑”的不一致结果(见图)。在 Chrome 中,该属性的值同时为“zzz”和未定义(参见第 5 行与第 1 行)。在 Safari 中,输出显示不同,但在 console.log(object) 上,“editable”属性显示为“zzz”,而在 console.log(object.editable) 上,该属性未定义。
有什么提示吗?
我认为这个问题与:console.log() showing contradictory values for the same object property有关
最佳答案
我猜你的 HTML 是这样的
<div my-directive editable="{{someScopeProperty}}"...></div>
并且您正在链接函数中调用 console.log()
。当链接函数运行时,插值属性还没有定义(你需要使用 $observe
或 $watch
来异步获取插值),所以你会得到 undefined
如果您尝试记录该值。不久之后,该值被定义,Chrome 似乎会在您记录完整对象(而不仅仅是单个值)的控制台中自动更新该值(我认为这实际上是一个引用)。
关于javascript console.log 在同一对象上显示不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571003/