2013-09-27 2 views
1

Я запускаю Ember 1.0 с Ember Data 1.0 Канарейки с помощью FixtureAdapter. Один из моих маршрутов правильно загрузит свою модель при первом входе в нее, но в любой последующий момент данные будут пустыми. Вот что маршрут:Ember с данными - модель маршрута не работает последовательно

App.PlannerRoute = App.AuthenticatedRoute.extend({ 
    model: function() { 
    var snapshotId, 
     scenarioController = this.controllerFor('scenario'), 
     snapshot = scenarioController.get('selectedSnapshot'), 
     scenario = scenarioController.get('content'); 
    if (!snapshot) { 
     if (!scenario) 
     this.transitionTo('scenarios'); 
     else 
     this.transitionTo('scenario', scenario); 
    } 
    snapshotId = snapshot.get('id'); 
    return Ember.Object.create({ 
     regions: this.store.find('region', { snapshot: snapshotId }), 
     networks: this.store.find('networks', { snapshot: snapshotId }), 
     terminals: this.store.find('terminals', { snapshot: snapshotId }) 
    }); 
    } 
}); 

Если установить точку останова на заявление возврата в методе модели выше, я считаю, что призывы к this.store.findвсегда получить правильные данные. Однако данные только заполняются в контроллерах маршрута/представлениях/шаблонах/и т. Д. На сначала переход к маршруту.

Любая помощь в отслеживании проблемы оценивается. Как я могу это исправить?

+0

Первое, что я хотел бы попробовать использует последние версии Эмбер и EmberData. – gerry3

+0

Видя подобное поведение с hasMany детьми. После создания и сохранения нескольких родительских дочерних графов все выглядит как инструмент отладки Ember в магазине. Я вижу детей в hasMany наборах родительских. Если я затем запустил store.findAll («parent»), то hasMany sets станут []. –

+0

@ gerry3 Я использую ember-date (Последняя фиксация: 3017027 (2013-09-27 22:45:12 -0700)), ember (Last commit: a186eff (2013-09-27 22:53:46 -0700)), видя очень похожее поведение. –

ответ

0

Вы пробовали что-то вроде:

... 
snapshotId = snapshot.get('id'); 
var regions = this.store.find('region', { snapshot: snapshotId }), 
    networks = this.store.find('networks', { snapshot: snapshotId }), 
    terminals = this.store.find('terminals', { snapshot: snapshotId }); 

return Ember.RSVP.all([ regions, networks, terminals ]).then(function(results){ 
    return Ember.Object.create({ 
    regions: results[0], 
    networks: results[1], 
    terminals: results[2] 
    }); 
}); 
+0

Это определенно выглядит как лучший способ сделать что-то (я все еще привыкаю/не совсем понимаю обещания). Спасибо за это! К сожалению, это не решает проблему. Первый переход к маршруту работает отлично, но все последующие переходы (даже с тем же снимком!) Не загружают данные. – nickiaconis

Смежные вопросы