Я использую шаблонную функцию underscore.js и сделал такой шаблон:
<script type="text/template" id="gridItem">
<div class="griditem <%= gridType %> <%= gridSize %>">
<img src="<%= image %>" />
<div class="content">
<span class="subheading"><%= categoryName %></span>
<% if (date) { %><span class="date"><%= date %></span><% } %>
<h2><%= title %></h2>
</div>
</div>
</script>
Как видите, у меня есть оператор if, потому что все мои модели не будут иметь параметр date. Однако этот способ дает мне ошибку date is not defined
. Итак, как я могу сделать, если утверждения в шаблоне?
:nth-child(even)
и:nth-child(odd)
CSS селекторы, не изменить шаблон.Если вы предпочитаете более короткое выражение if else, вы можете использовать это сокращение:
Это означает отображение идентификатора, если он действителен, и пуст, если это не так.
источник
_.template
вставляет;
в начале каждого тега скомпилированного кода. Таким образом, он может обрабатывать разрывы тегов между операторами, но не внутри выражений. Сравните;if(a){b;}else{c;}
с;a?b;:c;
.В зависимости от ситуации и / или вашего стиля, вы также можете использовать печать внутри
<%
%>
тегов, так как это позволяет прямой вывод. Подобно:И для исходного фрагмента с некоторой конкатенацией:
источник
Вот простая проверка if / else в underscore.js, если вам нужно включить проверку на ноль.
источник
_.isEmpty()
Отвечая на blackdivine выше (о том, как подвести итоги), вы, возможно, уже нашли свой ответ (если так, позор, что вы не поделились!), Но самый простой способ сделать это - использовать оператор модуля. скажем, например, вы работаете в цикле:
В этом цикле просто проверьте значение вашего индекса (я в моем случае):
Выполнение этого будет проверять остаток моего индекса, деленный на два (переключение между 1 и 0 для каждой строки индекса).
источник
Вы можете попробовать _.isUndefined
источник
date
вообще не существует. Вtypeof
этом случае вам действительно нужно , хотя было бы еще лучше использовать именованную переменную, когда мы набираем данные шаблона.От сюда :
«Вы также можете ссылаться на свойства объекта данных через этот объект, вместо того, чтобы обращаться к ним как к переменным». Это означает, что для случая OP это будет работать (со значительно меньшим изменением, чем другие возможные решения):
источник
Для проверки на нулевые значения вы можете использовать
_.isNull
из официальной документацииВозвращает true, если значение объекта равно нулю.
источник