2017-09-06 4 views
0

Ich habe mich gefragt, was der beste Weg, um Fehler von Komponenten werfen. Im folgenden Beispiel überprüfe ich, ob dort eine Aktion übergeben wurde und ich einen Fehler ausspreche, um eine weitere Ausführung zu verhindern, dies funktioniert, jedoch wird die Fehlerroute nicht wie erwartet ausgelöst.Werfen Fehler in Ember-Komponenten

/** 
     * Save step and go to the next step. 
     */ 
     next() { 
      if (isEmpty(this.get('nextAction'))) { 
       throw new Error('The nextAction is undefined.'); 
      } 
      if (isEmpty(this.get('saveAction'))) { 
       throw new Error('The saveAction is undefined.'); 
      } 
      const insuranceApplication = this.get('model'); 
      if (this.isLastDependent(this.get('dependentIndex'), insuranceApplication.get('dependents.length'))) { 
       return this.get('nextAction')(); 
      } 
      return this.get('saveAction')().then(() => { 
       this.set('dependent', this.getNextDependent(insuranceApplication.get('dependents'))); 
      }); 
     } 

Antwort

0

Sie können Fehlerzustände mithilfe von Routenvorlagen behandeln. https://guides.emberjs.com/v2.14.0/routing/loading-and-error-substates/#toc_code-error-code-substates.

Aber für eine Komponente müssen Sie den Fehler abfangen und einer Eigenschaft der Komponente zuweisen.

Ein einfaches Beispiel könnte nahe an dem sein, was Sie bereits haben.

// component.js 
if (isEmpty(this.get('nextAction'))) { 
    this.set('error', 'The nextAction is undefined.'); 
} 

// compontent.hbs 
{{#if error}} 
    Error: {{error}} 
{{/if}}