@Kitler tarafından yorumda belirtildiği gibi, paylaşılan durumları işlemek için service kullanmalısınız. Servis, tarihe ihtiyacı olan rota ve kontrolörler tarafından tüketilebilir. Denetleyicide, sorgu paramını URL'de yansıtmak için hizmette ele alınan tarih değerine bağlarsınız.
Eğer bunu birkaç yerde kullanmanız gerekiyorsa, kendinizi tekrar etmekten kaçınmak için bir Mixin yazmalısınız. Tersane tavsiye edebilirim bir makale Ember Best Practices: Extend vs Mixin yazmıştır.
Bazı örnek kod, test edilmiş ancak göstermek için yeterli olacaktır değildir:
// app/services/settings.js
export default Ember.Service.extend({
date: null
});
// app/route/index.js
export default Ember.Route.extend({
settings: Ember.inject.service();
model() {
return this.store.query('post', {
filter: { date: this.get('settings.date') }
});
}
});
// app/controller/index.js
export default Ember.Controller.extend({
date: Ember.computed.alias('settings.date'),
queryParams: ['date'],
settings: Ember.inject.service()
});
Bir hizmeti kullanmak ve bir başlatıcısı aracılığıyla tüm yolları içine enjekte edebilir. –