2013-07-24 5 views
1

Борьба с населением Ember с данными.Ember.js - как получить дополнительную информацию о записи?

Я использую Rails в качестве backend, и когда я нажимаю /contacts.json (ContactsRoute), он возвращает список id, first, last - работает как ожидалось.

Однако, при посещении подробного представления (ContactRoute), я хотел бы нажать /contacts/1.json и получить данные, такие как адрес электронной почты, юбилеи и т. Д. Но поскольку у меня есть динамический сегмент, крючок модели пропускается и ни одна из ассоциаций не доступна.

Вопрос: Каков наилучший способ получения дополнительных данных в сценарии списка/подробностей?

Модели:

App.Contact = DS.Model.extend({ 
    firstName: DS.attr('string'), 
    lastName: DS.attr('string'), 
    company: DS.attr('string'), 
    emails: DS.hasMany('App.Email'), 
}); 

App.Email = DS.Model.extend({ 
    contact: DS.belongsTo('App.Contact'), 
    emailAddress: DS.attr('string'), 
}); 

Маршрут:

App.Router.map(function() { 
    this.resource('contacts'); 
    this.resource('contact', {path: 'contacts/:contact_id'}); 
}); 

App.ContactsRoute = Ember.Route.extend({ 
    init: function() {}, 
    model: function() { 
    return App.Contact.find(); 
    } 
}); 

App.ContactRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.Contact.find(params.contact_id); 
    } 
}); 

Спасибо заранее.

ответ

1

Я только что отправил ответ на аналогичную проблему здесь: https://stackoverflow.com/a/18553153/1254484

В основном, в вашем App.ContactRoute, переопределить setupController метод:

setupController: function(controller, model) { 
    controller.set("model", model); 
    model.reload(); 
    return; 
} 

Я использую это с последней ember-data (совершить ef11bff с 2013-08-26).

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