我正在使用ember 2.0和ember-data 2.0,我一直在努力寻找将自定义URL传递给模型的方法。
例如,如果我的模型名为Person
并存储在model / person.js文件中,我希望其余的网络服务网址用于查找记录为xxx/user/1
,或者换句话说要避免惯例,并将我的URL传递给休息服务 - 是否可以?
答案 0 :(得分:3)
您可以使用适配器。
如果您的后端约定与Ember Data约定不同,则可以通过交换或扩展默认适配器来轻松更改其功能。
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: 'api/v1',
pathForType: function(type) {
return Ember.Inflector.inflector.singularize(type);
}
});
如果您只想覆盖特定型号,只需使用modelName + Adapter
编写新适配器
当我想使用自定义适配器来注明'模特我可以做类似的事情:
App.Note = DS.Model.extend({
title: DS.attr('string'),
/* others attrs */
});
App.NoteAdapter = DS.RESTAdapter.extend({
namespace: 'other/endpoint',
pathForType: function(type) {
return Ember.Inflector.inflector.pluralize(type);
}
});
看一下ember adapter guide,如果你使用ember-cli使用蓝图生成器,如:
ember generate adapter user