在一条路线中,我希望我的模型(我称之为this.get('store')
)依赖于服务。因此,当我在服务中的一个值发生变化时,我的模型将自动刷新。
我不知道这项服务是否可行,是否是一种好习惯。
服务/电流contact.js
export default Service.extend({
session: service('session'),
store: service(),
list() {
if (this.get('session.isAuthenticated')) {
return this.get('store').findAll('contrat').then((contrats) => {
this.set('contrats', contrats);
});
} else {
return RSVP.resolve();
}
},
load() {
if (this.get('session.isAuthenticated')) {
if (localStorage.getItem('contrat')) {
return this.get('store').find('contrat', JSON.parse(localStorage.getItem('contrat'))).then((contrat) => {
this.set('contrat', contrat);
});
} else {
return this.get('store').findAll('contrat').then((contrats) => {
this.set('contrat', contrats.get('firstObject'));
localStorage.setItem('contrat', JSON.stringify(contrats.get('firstObject').id));
});
}
} else {
return RSVP.resolve();
}
},
select(id) {
if (this.get('session.isAuthenticated')) {
return this.get('store').findRecord('contrat', id).then((contrat) => {
localStorage.setItem('contrat', JSON.stringify(contrat.id));
window.location.reload(true);
})
} else {
return RSVP.resolve();
}
}
});
我的路线
export default Route.extend(AuthenticatedRouteMixin, {
session: service('session'),
currentContract: service('current-contract'),
model() {
var self = this;
return RSVP.hash({
pdccontrats: this.get('store').findAll('pdccontrat').then(function(i) {
return i.filterBy("contrat_fk.id", self.get('currentContract.contrat.id'));
}),
documentgroupefacturationclient: this.get('store').findAll('documentgroupefacturationclient'),
})
}
});