этот биндер пишется в 30 строк. смотря что нужно делать в колбеке
у меня например принято за стандарт возвращать json с полем success
если success == true то делать одно, если нет , то вывести ошибки согласно общепринятому стандарту, например выделить красным инпуты (добавить класс) и добавить подстрочно что именно за ошибки в виде текстовых сносок
после саксеса по мере необходимости тоже добавляются всякие плюшки например можно передать в джейсоне проперти message - что значит нужно отобьразить мессадж
если это попап, то нужно очистить поля и закрыть попап
можно просто передать саксес колбек (имя функции которую нужно вызвать при успехе)
можно передать строку js и выполнить эвал
собственно вариантов может быть много и о стандарте нужно договариваться и принимать его исходя из требований
121. Panoptik - 24 Декабря, 2014 - 13:06:10 - перейти к сообщению
122. DeepVarvar - 24 Декабря, 2014 - 13:22:37 - перейти к сообщению
Panoptik пишет:
Именно с тем кто возьмется писать биндер я и хотел обсудить нюансы. В том смысле, что у меня ж бекенд уже умеет возвращать стандартно оформленные данные в JSON, на наличие полей и их значения должна будет опираться логика биндера и не только биндера, раз уж под одну расческу всех.собственно вариантов может быть много и о стандарте нужно договариваться
Описать пример ответа?
123. tuareg - 24 Декабря, 2014 - 13:28:57 - перейти к сообщению
Опиши. Может там делов-то на пять минут
124. DeepVarvar - 24 Декабря, 2014 - 13:46:00 - перейти к сообщению
Бекенд отвечает так:
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- {
- // этого блока может не быть
- // он будет только при бросании исключения
- report: {
- type: 'member_error', // все варианты: system_error, member_error
- title: 'Заголовок сообщения',
- description: 'Описание сообщения',
- location: '/url/to/redirect' // этого св-ва может не быть
- // при бросании исключения можно добавлять абсолютно любые кастомные данные
- // конструктор исключения принимает всего один аргумент - массив
- // location был дан как пример кастомного возвращаемого св-ва
- // ключ type не может быть переопределен ключем входного массива
- // он зависит от класса исключения
- // в debug-режиме тут будет полный стектрейс, имя файла,
- // номер строки где бросили исключение, и что-то там еще для отладки
- }
- // любые другие данные добавленные во вьюху во время работы контроллера
- // их может не быть если было брошено исключение, т.к. исключение очищает тело ответа
- // в любом случае клиент увидит либо данные, либо report
- }
То же самое для XML-контекста вывода, ну т.е. будет XML с такой же структурой как у этого JSON.
Только при исключении обернуто будет в корневой элемент <response> всегда.
А при успешной выдаче результата, если задана кастомная XSD-schema то будет рисовать по ней, иначе тот же корневой <response>