Javascript console.log отображает разные значения на одном объекте

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

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

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

console bug?

Ответ 1

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

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

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