1

努力用数据填充 Ember。

我使用 Rails 作为后端,当我点击 /contacts.json (ContactsRou​​te) 时,它会返回一个 id 列表,首先,最后 - 按预期工作。

但是,在访问详细视图(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);
  }
});

提前致谢。

4

1 回答 1

1

我刚刚在这里发布了一个类似问题的答案:https ://stackoverflow.com/a/18553153/1254484

基本上,在你的App.ContactRoute,覆盖setupController方法:

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

我正在使用最新的(从 2013-08-26ember-data提交)。ef11bff

于 2013-08-31T21:58:05.680 回答