Docpad: показать сообщение об ошибке/успехе в контактной форме

Я добавил маршрут в свой файл docpad.coffee для обработки отправленных форм, которые я проверяю с помощью промежуточного программного обеспечения express-validator. Теперь, в зависимости от проверки, я хочу перенаправить пользователей на ту же страницу контактов, но отображать либо сообщение об успешном завершении проверки (здесь я отправлю электронное письмо), либо отображать сообщения об ошибках.

Мне не удалось передать сообщение проверки в шаблон, чтобы отобразить его. Я пробовал почти все комбинации dynamic: true/false, res.locals = validationMessages, res.sessions = validationMessages, res.templateData = validationMessages безуспешно.

Кроме того, добавление dynamic: true привело к тому, что изменения в содержимом вообще не отображались, какую бы стратегию обновления я ни использовал (приватный режим, очистка кеша, перезапуск Docpad, обновление без кеша и т. д.). Вероятно, я должен сообщить об ошибке.

Как ?

Я использую Docpad 6.53.0 (последний на сегодняшний день), узел 0.10.15, на OS X 10.8.4.


person DjebbZ    schedule 26.09.2013    source источник


Ответы (1)


Я немного схитрил, добавив хэш к URL-адресу перенаправления (например: «www.mywebsite.com/#messagesent»). Затем я использую javascript на стороне клиента, чтобы прочитать хеш, а затем показать соответствующее сообщение. Что-то вроде этого:

if (location.hash == "#messagesent") {  
    $('#message-sent').show();
    setTimeout(function () {
        $('#message-sent').fadeOut(1000);
    }, 1000);
}

Хотя не совсем то, о чем вы спрашивали :)

person Steve Mc    schedule 01.10.2013
comment
Обходной путь, но не работает с деактивированным JavaScript. Я все равно попробую, если у меня не получится сделать это на стороне сервера. - person DjebbZ; 01.10.2013
comment
Я думаю, вы должны иметь возможность делать то же самое на стороне сервера, т.е. смотреть на хэш URL/запроса. - person Steve Mc; 05.10.2013