1

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

有什么提示吗?

我认为这个问题与:console.log() 显示同一对象属性的矛盾值有关

控制台错误?

4

1 回答 1

3

我猜你的 HTML 是这样的

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

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

于 2013-05-15T17:15:53.877 回答