【问题标题】:Ember.js - how to fetch additional record details?Ember.js - 如何获取额外的记录详细信息?
【发布时间】:2013-07-24 06:51:11
【问题描述】:

努力用数据填充 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);
  }
});

提前致谢。

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

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

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

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

    我将它与最新的 ember-data 一起使用(从 2013 年 8 月 26 日提交 ef11bff)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      相关资源
      最近更新 更多