我有这些模特:
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' },
];
User
和Company
的数据可在Profile
FIXTURE
中找到。如何配置User
和Company
模型以使用该公共FIXTURE
?这将不做:
App.User.FIXTURES = App.Profile.FIXTURES;
因为我想要真正拥有一个单一且通用的端点,所以不要伪造它复制灯具。
我的真正目标是能够访问同一网址中User
和Company
个对象的后端:/api/profile
;如果有人可以澄清这一点,FIXTURE
问题是次要的(我只是对它感兴趣才能使jsbin工作)
对于ember-data
,可以配置API global endpoint和model pluralization。但我想要配置的是在全局api命名空间中找到每个模型的位置。也就是说,我不希望ember-data
根据模型名称推断API端点,但我想明确配置它。
这可能吗?
答案 0 :(得分:0)
我认为目前ember-data没有那个选项,所以我的兴奋就是使用ember model,因为它更灵活,你可以为每个类配置一个适配器。
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' },
];