执行服务方法时刷新Ember模型

时间:2018-04-13 11:15:50

标签: ember.js service ember-data ember-model

在一条路线中,我希望我的模型(我称之为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'),
    })
  }
});

0 个答案:

没有答案