在ember组件中抛出错误

时间:2017-09-06 15:13:01

标签: ember.js

我想知道从组件中抛出错误的最佳方法是什么。在下面的例子中,我检查是否有一个动作传递,我抛出一个错误,以防止进一步执行这个工作,但错误路由不会像我预期的那样被触发。

/**
         * 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')));
            });
        }

1 个答案:

答案 0 :(得分:0)

您可以使用路径模板处理错误状态。 https://guides.emberjs.com/v2.14.0/routing/loading-and-error-substates/#toc_code-error-code-substates

但是对于组件,您需要捕获错误并将其分配给组件的属性。

一个简单的例子可能与你已经接近的一样。

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

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