在 Extjs 中显示错误消息的最佳方式是啥?
Posted
技术标签:
【中文标题】在 Extjs 中显示错误消息的最佳方式是啥?【英文标题】:what could be the best way to show error message in Extjs?在 Extjs 中显示错误消息的最佳方式是什么? 【发布时间】:2014-11-20 07:05:52 【问题描述】:我正在使用 store.synch() 方法来发布数据。 并且从服务器端完成验证,目前我正在使用消息框来显示错误消息。 现在我想要一些不同的方式来显示错误,但不是 markInvalid() 因为为此我还必须更改每个 js 字段和 api。 那么markInvalid()有什么替代方法吗?
【问题讨论】:
【参考方案1】:Extjs 数据存储提供了监听器,其中一个监听器是 exception(适用于 ExtJs
这里是代码。
listeners: //Exception Handler for the Ajax Request
exception: function(proxy, response, operation)
var error = Ext.decode(response.responseText);
Ext.MessageBox.show(
title: 'REMOTE EXCEPTION',
msg: error.message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
);
顺便说一句,我没有明白什么是 markInvalid()
【讨论】:
【参考方案2】:您好Naresh Tank,我对您的问题的解决方案是监控所有 ajax 请求。这样,无论来自商店还是表单,您都可以发送您想要的错误消息。
希望对你有所帮助。
在 app.js 上
init: function()
this.addAjaxErrorHandler(this);
,
addAjaxErrorHandler: function(object)
Ext.Ajax.on('requestexception', function(conn, response, options, e)
var statusCode = response.status,
errorText = null,
captionText = response.statusText;
if (statusCode === 0 || statusCode === 401)
Ext.Ajax.abortAll();
if(response.statusText==="Authorization Required")
Ext.Ajax.abortAll();
// 404 - file or method not found - special case
if (statusCode == 404)
Ext.MessageBox.alert('Error 404', 'URL ' + response.request.options.url + ' not found');
return;
if (response.responseText !== undefined)
var r = Ext.decode(response.responseText, true);
if (r !== null)
errorText = r.ErrorMessage;
if (errorText === null)
errorText = response.responseText;
if (!captionText)
captionText = 'Error ' + statusCode;
Ext.MessageBox.alert(captionText, errorText);
,
object);
Ext.Ajax.on('requestcomplete', function(conn, response, options, e)
var statusCode = response.status,
errorText = null,
captionText = response.statusText;
if (response.responseText !== undefined)
var r = Ext.decode(response.responseText, true);
if (r !== null && r.success === false)
try
if(typeof r.data[0].idUsr !== 'undefined')
return;
catch(e)
errorText = r.msg;
if (errorText === null)
errorText = response.responseText;
if (!captionText)
captionText = 'Error ' + statusCode;
Ext.MessageBox.alert(captionText, errorText);
,
object);
;
【讨论】:
以上是关于在 Extjs 中显示错误消息的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章