Я использую Ext.direct.RemotingProvider. На стороне сервера я делаю некоторые проверки правильности. Ответ отправляется обратно в формате JSON.
Если я обнаружу какие-либо ошибки при проверке достоверности, поле success = false, и ошибки будут содержать ошибку.
Я пытаюсь выяснить, как мне отразить ошибки, обнаруженные на стороне сервера в форме (на стороне клиента).
В ссылке ниже приведен пример того, чего я хочу достичь. Когда клиент нажимает «отправить», в форме появляется сообщение об ошибке, как это работает?
Пример
В коде, который я размещаю внизу, происходит следующее:
в браузере есть 2 поля (Имя, Электронная почта) и 2 кнопки.
поля не имеют значения на данный момент. они используются в качестве манекенов.
Каждый раз, когда пользователь нажимает кнопку «Добавить», в callBuffer объекта Ext.direct.RemotingProvider добавляется новое действие.
Когда пользователь нажимает кнопку «Применить», все действия отправляются на маршрутизатор (модель MVC) и оттуда на определенный контроллер. (функция sfw.Direct.getProvider ('sfwProvider'). объединитьAndSend () запущена).
На данный момент я намеренно провалю ответ и создаю поле ошибки, так же, как пример ссылки, которую я добавил в начале Темы.
Я положил в поле ошибок {email = "Уже существует"}.
но я не вижу эффекта в виде ..
что я делаю не так?
Код:
appWiki.main_panel = new Ext.FormPanel({
renderTo: 'extjs_panels_container'
, id: 'appWiki_main_panel'
, name: 'appWiki_main_panel'
, defaultType: 'textfield'
, items: [
{
fieldLabel: 'Name',
name: 'name'
}
,{
fieldLabel: 'Email',
msgTarget: 'side',
name: 'email'
}]
,buttons:[
{xtype: 'sfw.Button'
, text: 'Add'
, handler: function(){sfw.rule.store.api.readByRowId({data: {_ROWID_: 1}});}
}
,{text: 'Submit'
, handler: function(){
appWiki.main_panel.getForm().submit({
});
}
}]
,api: {
// The server-side must mark the submit handler as a 'formHandler'
submit: sumbitAllRequests
}
, load: function()
{
setTimeout("hide_loading_mask()",2000);
}
});