我正在开发一个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
有关
答案 0 :(得分:3)
我猜你的HTML就是这样的
<div my-directive editable="{{someScopeProperty}}"...></div>
并且您在链接功能中调用了console.log()
。当链接函数运行时,尚未定义插值属性(您需要使用$observe
或$watch
来异步获取插值),因此如果您尝试使用undefined
,您将获得{{1}}记录该值。不久之后,值被定义,Chrome似乎会在您记录完整对象的控制台(而不仅仅是单个值)中自动更新值(我认为这实际上是一个参考)。