我可以创建自定义的余烬数据方法吗?

Thr*_*nts 4 javascript ember.js ember-data

我想知道是否有任何方法可以让我创建自定义的 ember-data 方法,以便我可以执行以下操作:

this.store.customMethod('klass')

我知道我可以根据我的需要覆盖现有的方法,但我需要更多的控制权

Kit*_*nde 5

如果您想做自定义的事情,您最有可能想要做的是向模型适配器添加自定义方法。所以在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);
  }
});
Run Code Online (Sandbox Code Playgroud)

然后在其他地方:

const adapter = this.store.adapterFor('user');
adapter.customMethod();
Run Code Online (Sandbox Code Playgroud)

但是,是的,您可以扩展商店。在stores/application.js

import DS from 'ember-data';

export default DS.Store.extend({
    customMethod(model) {
      // Do stuff
    }
});
Run Code Online (Sandbox Code Playgroud)