覆盖DS.Store ember-cli

时间:2014-08-25 20:07:44

标签: ember.js ember-data 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')
  }
});

2 个答案:

答案 0 :(得分:23)

根据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);
    }
});

答案 1 :(得分:7)

>的答案Ember 1.13

Store现在extends the Service所以我们可以创建app/services/store.js并添加以下代码来扩展/自定义商店:

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

Here's a sample twiddle