我可以创建自定义的ember-data方法吗?

时间:2015-08-09 19:08:01

标签: javascript ember.js ember-data

我想知道是否有任何方法可以创建自定义余烬数据方法,所以我可以这样做:

this.store.customMethod('klass')

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

2 个答案:

答案 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);
  }

});

https://stackoverflow.com/a/34999549/634545

答案 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
    }
});