2016-05-14 2 views
2

У меня есть форма для обновления пользовательских данных, которые заполняют каждый ввод существующим значением поля, поскольку он хранится в базе данных. Однако в случае новых пользователей определенные значения еще не были привязаны к базе данных, поэтому я хотел бы, чтобы поля ввода были пустыми.Интерполяция переменных Jade - значение по умолчанию, если свойство не определено?

Для отображения пользовательских данных я использую функцию интерполяции Jade для просмотра объекта #{user.local}, прошедшего через файл routes.js.

Похоже, это (фрагмент):

input(type="text", name="firstname", value="#{user.local.firstName}") 

Это хорошо работает, когда свойство определено, но оно (правильно) вставляет undefined как текст в качестве вклада, где не было определено свойство.

Есть ли способ установить переменную по умолчанию, если она не была установлена?

Что-то вроде:

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 
+0

Вы нашли решение для этого? В настоящее время у меня есть такая же проблема и поиск решения. – Stefan

+0

Не в Джейд, сам по себе. Я думаю, мне просто нужно добавить некоторую логику к моему контроллеру, чтобы при получении данных он заменял «undefined» любой пустой строкой или чем-то еще. Затем эти данные будут переданы в представление через маршрутизатор. – armadadrive

+1

Использование jade ~ 1.9.2, '' 'input (type = 'text' class = 'form-control' id = 'line6Name' name = 'param6' value = '# {device.param6 ||" "}') '' 'дает значение по умолчанию пустой строки для неопределенных значений, когда я это делаю. Я готов быть тем кодом, который у вас там будет, если вы переместитесь туда, где находится двойная цитата закрытия. –

ответ

2

Использование нефрита ~ 1.9.2, я попытался

input(type='text' class='form-control' id='line6Name' name='param6' value='#{device.param6||""}') 

в форме, которую я пишу. Он дает по умолчанию пустую строку для неопределенных значений.

Я готов поспорить, что код, который у вас там есть, будет работать, если вы переместились туда, где находится двойная кавычка закрытия.

От:

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 

To:

input(type="text", value="#{user.local.firstName || 'Default Text'}") 
+0

Это работает как шарм. Оказывается, вы были правы - моя фигурная скобка должна была закончиться до окончательной отметки. – armadadrive

Смежные вопросы