我想知道是否有任何方法可以创建自定义余烬数据方法,所以我可以这样做:
this.store.customMethod('klass')
我知道我可以根据自己的需要覆盖现有的方法,但我需要更多的控制
答案 0 :(得分:3)
另一个选择是实现自定义商店服务。
// app/services/store.js
import DS from 'ember-data';
export default DS.Store.extend({
init: function() {
console.log('Using custom store!');
return this._super.apply(this, arguments);
}
});
答案 1 :(得分:2)
如果要进行自定义操作,最有可能的做法是向模型适配器添加自定义方法。所以在adapters/klass.js
:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
customMethod(){
const data = {user: {email: this.get('email')}};
const baseUrl = this.urlForFindAll('user');
return Ember.$.post(`${baseUrl}/password`, data);
}
});
然后在其他地方:
const adapter = this.store.adapterFor('user');
adapter.customMethod();
但是你确定你可以扩展商店。在stores/application.js
:
import DS from 'ember-data';
export default DS.Store.extend({
customMethod(model) {
// Do stuff
}
});