0

我有这些模型:

App.Profile = DS.Model.extend({
    name  : DS.attr('string'),
    type  : DS.attr('string')
});

App.User = App.Profile.extend({
    email : DS.attr('string')
});

App.Company = App.Profile.extend({
    vat : DS.attr('string')
});

App.Profile.FIXTURES = [
    { id: 'me',         type: 'user'   , name: 'Max Smith',        email: 'max.smith@email.com'},
    { id: 'my-company', type: 'company', name: 'Good Company Inc', vat: 'B456DF' },
];

两者的数据UserCompany都可以在 中找到Profile FIXTURE。如何配置UserCompany模型以使用该 common FIXTURE?这不会

App.User.FIXTURES = App.Profile.FIXTURES;

因为我想真正拥有一个单一且通用的端点,而不是伪造它来复制固定装置。

我真正的目标是能够访问同一 URL 中的对象User和对象的后端:如果有人可以澄清这一点,那么问题是次要的(我只是对它感兴趣,以便让这个jsbin工作)Company/api/profileFIXTURE

编辑

因为ember-data可以配置API 全局端点模型复数。但是我要配置的是在全局 api 命名空间中找到每个模型的位置。也就是说,我不想ember-data根据模型名称推断 API 端点,但我想显式配置它。

这可能吗?

4

1 回答 1

0

我认为目前 ember-data 没有该选项,所以我的建议是使用 ember 模型,因为它更灵活,并且您可以为每个类配置一个适配器。

App.Profile = Ember.Model.extend({
    name  : Ember.attr(),
    type  : Ember.attr()
});

App.User = Ember.Profile.extend({
    email : Ember.attr()
});

// when using fixtures
App.User.adapter = Ember.FixtureAdapter.create();

// or when using rest adapter
App.User.url = '/api/profile';
App.User.adapter = Ember.RESTAdapter.create();

App.Company = Ember.Profile.extend({
    vat : Ember.attr()
});

// when using fixtures
App.Company.adapter = Ember.FixtureAdapter.create();

// or when using rest adapter
App.Company.url = '/api/profile';
App.Company.adapter = Ember.RESTAdapter.create();

// When using fixtures
// I think that this cannot be avoided
App.User.FIXTURES = App.Company  = [
    { id: 'me',         type: 'user'   , name: 'Max Smith',        email: 'max.smith@email.com'},
    { id: 'my-company', type: 'company', name: 'Good Company Inc', vat: 'B456DF' },
];
于 2013-08-21T12:50:45.727 回答