My app has a lot of reports, and I have dateBegin and dateEnd in all of then.
The desired behaviour is:
- app first load, dateBegin = month begin (jun-01) / dateEnd = today (jun-11)
- when user change dates (let's say to mai-01 / mai-31), all controllers get the new dates
The code that I have now:
// app/services/defaults.js
import Ember from 'ember';
export default Ember.Service.extend({
init: function () {
this._super();
var dateEnd = moment().format('YYYY-MM-DD');
var dateBegin = moment().startOf('month').format('YYYY-MM-DD'));
if (!this.get('dateEnd')) { this.set('dateEnd', dateEnd); }
if (!this.get('dateBegin')) { this.set('dateBegin', dateBegin }
}
});
// app/components/select-dates-in-reports.js
import Ember from 'ember';
export default Ember.Component.extend({
defaults: Ember.inject.service(),
displayDateBegin: null,
displayDateEnd: null,
dateBegin: Ember.computed.alias('defaults.dateBegin'),
dateEnd: Ember.computed.alias('defaults.dateEnd'),
setInitialParams: Ember.on('init', function () {
this.set('displayDateBegin', this.get('dateBegin'));
this.set('displayDateEnd', this.get('dateEnd'));
}),
actions: {
chooseParams: function () {
this.set('dateBegin', this.get('displayDateBegin'));
this.set('dateEnd', this.get('displayDateEnd'));
}
}
});
// app/mixins/query-params-for-reports.js
import Ember from 'ember';
export default Ember.Mixin.create({
queryParams: ['dateBegin', 'dateEnd'],
defaults: Ember.inject.service(),
dateBegin: Ember.computed.alias('defaults.dateBegin'),
dateEnd: Ember.computed.alias('defaults.dateEnd')
});
It works as desired just after each controller is initialized:
- user enter the app, and visit controller1. dateBegin = jun-01 / dateEnd = jun-11
- on the same controller1, user change dates to dateBegin = mai-01 / dateEnd = mai-31
- user visit controller2. Here is the Problem. The dates are set to dateBegin = jun-01 / dateEnd = jun-11
- on the same controller2, user change dates to dateBegin = apr-01 / dateEnd = apr-30
- user visit controller1 again. Now it works. The dates are set to dateBegin = apr-01 / dateEnd = apr-30
I tried all I could find over the net. Create Initializers, used localStorage, etc. Nothing works.
Can anyone helps me?? thanks!
Aucun commentaire:
Enregistrer un commentaire