Backbone, JST, EJS: пустые значения в шаблонах

У меня есть шаблон магистрали JST ->EJS для формы "проекты". В идеале я хотел бы использовать один и тот же шаблон для создания и редактирования моделей.

На данный момент у меня есть что-то вроде этого в шаблоне:

<input type='text' name='demo_field' value='<%= demo_field %>' />

Это прекрасно работает, пока demo_field имеет значение, но если нет, вся форма завершается с ошибкой referenceError.

Итак, каков самый элегантный способ убедиться, что переменные поля возвращают пустое значение вместо сбоя в Backbone... или JST... или EJS?

Приветствия...

1 ответ

Решение

Я бы, вероятно, сделал помощника, так как у javascript нет хорошего способа сделать что-то вродеfield if field? в CoffeeScript.

Добавьте что-то вроде этого во вспомогательную функцию:

function printIfExists(field) {
  return (typeof field !== "undefined" && field !== null) ? field : '';
}

и назовите это в своих шаблонах. Проще простого!

Вы также можете использовать альтернативный function объявление:

var printIfExists = function(field){...}

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

Другие вопросы по тегам