Backbone, JST, EJS: пустые значения в шаблонах - PullRequest
0 голосов
/ 26 января 2012

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

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

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

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

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

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

1 Ответ

1 голос
/ 26 января 2012

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

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

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

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

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

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

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

...