我有一些代码需要在store.init
上运行。
我尝试在app/store.js
扩展默认商店,ember-cli似乎将其作为商店选择,但this.store
中的对象不是商店
我的商店定义:
import DS from 'ember-data';
export default DS.Store.extend({
init:function(){
console.log('watatLoL')
}
});
答案 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);
}
});