javascript - Ember : insert errors from model into application template

标签 javascript ember.js model ember-data

我在模型类中看到了 becomedError 和 becameInvalid 触发器,例如:

//model/car.js
example  import Ember from "ember";
import Model from "ember-data/model";

export default Model.extend({
  becameError() {
    alert('there was an error!');
  },

  becameInvalid(errors) {
    alert(`Record was invalid because: ${errors}`);
  },
});

现在,当我保存模型并且我的后端返回错误时,将显示警报。但是如何在应用程序模板中显示错误消息?

类似于:

becameError() {
    applcation.set('hasError', true);
  },

//application.hbs
{{#if hasError}}
   <h1>An error has occured!</h1>
{{/if}}

最佳答案

您可以使用 service为此。

//services/error-container.js
...
errors: Ember.A()
...

现在的汽车模型

//models/car.js
...
export default Model.extend({
  errorContainer: Ember.inject.service(),
  becameError() {
    alert('there was an error!');
    this.get('errorContainer.errors').pushObjects(this.get('errors'));
  }
...

在应用程序模板中

//application.hbs
{{#if hasError}}
   {{#each errorContainer.errors as |error|}}
      <div>error.message</div>
   {{/each}}
{{/if}}

在应用程序 Controller 中

...
errorContainer: Ember.inject.service(),
hasError: Ember.computed.notEmpty('errorContainer.errors')
...

此外,您还需要注意清除 errors 中的错误对象

关于javascript - Ember : insert errors from model into application template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783519/

相关文章:

javascript - 跨多页面表单使用 ember-cp-validations

javascript - Ember -- JSON API 适配器错误处理

java - JTable - AutoRowSorter - getColumnClass - 不工作

ruby-on-rails - 如何强制Rails查询为每个结果返回两个可能的模型?

javascript - jQuery 是装饰器设计模式的实现吗?

javascript - Ruby on Rails - 未捕获的 ReferenceError : $ is not defined

javascript - 语音识别API

javascript - 如何引用计算机上全局安装的依赖项?

javascript - Ember.js - 调用父模型 Hook 为子模型加载数据

javascript - 如何在 ember.js 中相对于单击操作定位模态