Overwrite DS.Store ember-cli



我有一些代码需要在store.init上运行。

我尝试扩展app/store.js中的默认存储,ember-cli似乎将其作为存储,但this.store中的对象不是存储

我的店铺定义:

import DS from 'ember-data';
export default DS.Store.extend({
  init:function(){
    console.log('watatLoL')
  }
});

根据Peter Wagenet的说法,这在Ember Data beta 19中发生了变化。如果您使用的是该版本或更高版本,则文件现在为app/stores/application.js(如果您使用pod,则为app/application/store.js)。

覆盖存储是一样的,只是文件名/位置发生了更改。如果您使用的Ember Data版本低于beta 19,则可以使用旧的app/store.js文件。


我知道这是旧的,但我必须回答另一个问题,所以我想我会更新这个。默认情况下,Ember CLI解析器将查找app/store.js,因此您可以在那里声明覆盖的存储。

// app/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);
    }
});

Ember 1.13的答案:

Store现在扩展了Service,所以我们可以创建app/services/store.js,并放入以下代码来扩展/自定义Store:

// 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);
  }
});

这是一个旋转的示例

最新更新