Javascript 余烬:将模型中的错误插入应用程序模板
我在模型类中看到了becameError和becameInvalid触发器,例如:Javascript 余烬:将模型中的错误插入应用程序模板,javascript,ember.js,model,ember-data,Javascript,Ember.js,Model,Ember Data,我在模型类中看到了becameError和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) {
//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}}
becameError(){
application.set('hasrerror',true);
},
//application.hbs
{{{#如果hasError}}
发生了一个错误!
{{/if}
您可以使用它
//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}}
此外,您还需要注意清除从错误中删除错误对象
...
errorContainer: Ember.inject.service(),
hasError: Ember.computed.notEmpty('errorContainer.errors')
...