2016-03-04 3 views
0

Я пытаюсь изменить свойство объекта.Невозможно получить доступ и изменить свойство переменной

console.log(dataset); 
// -> This shows object with an 'ids' property, and it is an array with 7 elements. 

Но

console.log(dataset.ids); //shows an empty array 

принять Пожалуйста, посмотрите на это изображение, то describles как 'набор данных' выглядит следующим образом: weired js

Можете ли вы объяснить, почему?

Спасибо!

+1

Вы можете поделиться своим набором данных? – gurvinder372

+0

у вас, пожалуйста, укажите объект 'dataset' – htoniv

+0

Да, я прикрепил изображение, пожалуйста, взгляните на: http://i.stack.imgur.com/SnuDs.png – ThanhLoyal

ответ

1

Возможно, это связано с тем, что массив dataset.ids еще не заполнен на init.

Почему?

Когда вы открываете панель с консоли Chrome для подробного анализа dataset, консоль Chrome просто вызывает консольный журнал на ссылочном объекте.

На этот раз массив заполнен.

Возможно, вам нужно найти крючок из объекта KanbanView, где вы уверены, что этот массив заполнен, если вы хотите получить к нему доступ.

Такое поведение консоли может сбивать с толку в первый раз, когда вы сталкиваетесь с таким случаем!

+0

Тогда как первый журнал может показать «идентификаторы» с 7 элементами? log (dataset) <--- заполняется. После этого: log (dataset.ids) <-ids не заполнено. – ThanhLoyal

+0

Я только что дал вам ответы выше ... Я уверен, что на первом console.log массив также пуст (вы не можете видеть, что линия слишком длинная на консоли, и Chrome разрезал ее). Когда вы разворачиваете консольный инспектор, Chrome вызывает новый console.log в ссылке на объект (так ПОСЛЕ каждого кода выполнения) –

+0

О, вы правы. Я написал 'console.log (dataset.ids)' в 'setTimeout' и показывает полный массив. Спасибо. – ThanhLoyal