Управление отображением ошибок в списковых формах и формах редактирования.
Настройка отображения ошибок в формах
Для того что бы изменить поведение по умолчанию, необходимо переопределить действие error
в контроллере соответствующей формы. Единственным параметром этого метода будет объект ошибки, который необходимо установить в свойство, связанное с ошибкой в компоненте flexberry-error
(по умолчанию error
).
import Ember from 'ember';
import DS from 'ember-data';
export default Ember.Controller.extend({
actions: {
error(error) {
if (error instanceof DS.AdapterError) {
error = new Error('При обработке запроса произошла ошибка.');
this.set('error', error);
}
},
},
});
Настройка создания ошибок в адаптере
Для того что бы изменить поведение по умолчанию, необходимо переопределить метод handleResponse
в адаптере, в котором можно создавать ошибки преобразуя ответ сервера в понятные пользователю сообщения.
import DS from 'ember-data';
import SilentError from '../errors/silent-error';
export default DS.RESTAdapter.extend({
handleResponse(status, headers, payload) {
if (!this.isSuccess(status, headers, payload)) {
if (this.analyzeErrorResponse(status, headers, payload)) {
return new SilentError();
} else {
return new DS.AdapterError(payload.error);
}
}
return this._super(...arguments);
},
});