Ember.js - 如何获取其他记录详细信息?

时间:2013-07-24 06:51:12

标签: ember.js ember-data

挣扎着用数据填充Ember。

我正在使用Rails作为后端,当我点击/contacts.json(ContactsRou​​te)时,它会返回一个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 个答案:

答案 0 :(得分:1)

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

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

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

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