С чего начать, модели есть, но ... их нет? - PullRequest
1 голос
/ 21 декабря 2011

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

console.log('actions.models', this.model.actions.models)
console.log('actions.models.length', this.model.actions.models.length)
console.log('first actions.models', this.model.actions.models[0])

выход

actions.models [ Action ]
actions.models.length 0
first actions.models undefined

если я добавлю setTimeout, скажем, 2 секунды к этому коду, я получу

actions.models [ Action ]
actions.models.length 1
first actions.models Action

Я не понимаю, как это могло случиться. Я не знаю, с чего начать, и даже, что было бы полезно опубликовать для вас, ребята, чтобы посмотреть.

Если кто-нибудь сможет помочь мне направить меня в правильном направлении, я буду признателен. Большое спасибо.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Загружаете ли вы модели с помощью функции Ajax, например fetch?Если это так, вы не можете рассчитывать на загрузку данных до тех пор, пока не будет вызван обратный вызов функции Ajax, например,

actions.fetch {success: -> console.log actions.models.length}
0 голосов
/ 21 декабря 2011

Не уверен, что вы пытаетесь сделать, но в любом случае .. Когда вы сбрасываете объекты в журнал консоли, имейте в виду тот факт, что, поскольку объекты передаются по ссылке, все, что вы получите от проверки этого в журнале, будет любымобъект оказалсяПредполагая, что вы хотите регистрировать состояние объекта, вы, вероятно, должны попытаться сериализовать его при регистрации.Например, console.log "mymodel: ", JSON.stringify(mymodel.attributes).

Также учтите, что для доступа к моделям магистрали вы обычно используете name = mymodel.get('name') или для коллекции item = mycollection.get('someid').

Если вы публикуете некоторый тестируемый код ичто вы пытаетесь достичь, я уверен, что кто-то с подсказкой сможет вам помочь.

...