Обновить модель Ember при выполнении метода обслуживания
В маршруте, я хотел бы мою модель, где я звонил 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'),
})
}
});