« successProperty » - это не то, что вы думаете. Это свойство используется ExtJS для внутренних целей, чтобы узнать, есть ли в методе ошибка. Это строка, содержащая « name » свойства внутри возвращаемого JSON, который сообщит платформе ExtJS, что что-то пошло не так, а не сам статус ошибки . Вот почему ExtJS позволяет вам «определять» это свойство. И так как ваша сторона сервера будет определяться вами, вы можете выбрать любое имя, которое вам нравится, для вашего статуса успеха , и если вы выберете что-то отличное от success
(по умолчанию successProperty
) затем вы определяете его в successProperty
свойстве конфигурации JsonReader.
И простой способ определить, произошла ли ошибка при загрузке сетки, - проверить 3-й параметр (называемый success
) callback
в методе load
:
store.load({
params:{start:0, limit:15},
callback: function(result, options, success) {
if (!success) {
alert('error!!');
}
}
});
Существуют более общие способы обработки ошибок на стороне сервера, вместо определения обратного вызова для каждого store.load
, который вы можете использовать:
// Listen to "exception" event fired by all proxies
Ext.data.DataProxy.on('exception', function(proxy, type, action, ex) {
alert('Error through DataProxy.exception at ' + type + '.'+ action);
});
Или, если вы уже используете Ext.Direct , вы можете использовать его exception
событие (возможно, вы не используете Ext.Direct, поэтому не ожидайте, что оно будет работать само по себе):
Ext.Direct.on('exception', function(ex) { alert(ex.message); });
Я собрал полный пример с первыми 2 способами отлова ошибок: http://jsfiddle.net/vZGvM/.
В примере нет ошибок, но вы можете смоделировать ошибку, указав URL-адрес ScriptTagProxy на любой недействительный URL-адрес (если вы сделаете это, потребуется время, но вы увидите оба предупреждения).