javascript console.log отображает разные значения для одного и того же объекта

Я работаю над приложением AngularJS. Когда я console.log объект (параметр attrs функции связывания директив), браузер показывает противоречивые результаты для параметра «редактируемый» (см. Изображение). В Chrome свойство оценивается как «zzz» и как undefined (см. 5-ю строку против 1-й). В Safari выходные данные отображаются по-другому, но в console.log(object) свойство «редактируемое» отображается как «zzz», а в console.log(object.editable) это свойство не определено.

Любые подсказки?

Я думаю, что эта проблема связана с: console.log( ) показывает противоречивые значения для одного и того же свойства объекта

ошибка консоли?


person Antonio Madonna    schedule 15.05.2013    source источник
comment
usign console.dir() то же самое   -  person Antonio Madonna    schedule 15.05.2013


Ответы (1)


Я предполагаю, что ваш HTML что-то вроде этого

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

и что вы вызываете console.log() в своей функции ссылки. Когда функция ссылки запускается, интерполированные атрибуты еще не определены (вам нужно использовать $observe или $watch для асинхронного получения интерполированного значения), поэтому вы получите undefined, если попытаетесь записать значение в журнал. Вскоре после этого значение определяется, и Chrome, кажется, автоматически обновляет значение (которое на самом деле является ссылкой, я думаю) в консоли, где вы регистрируете полный объект (а не только отдельное значение).

person Mark Rajcok    schedule 15.05.2013
comment
отличный! это именно то, что я делал, и ваше объяснение идеально подходит. - person Antonio Madonna; 15.05.2013