Ответ 1
Поскольку вы только определили регулярное выражение интерполяции в настройках настраиваемого шаблона, подчеркивание не знает, когда оценивать выражения. Когда вы определяете настраиваемые параметры шаблона, вам нужно определить и провести различие между интерполяцией и оценкой. Из документа подчеркивания template()
:
Определите интерполированное регулярное выражение и (необязательно) оценить регулярное выражение для соответствия выражениям, которые необходимо вставлять и оценивать соответственно. Если не задано регулярное выражение, ваши шаблоны будут способны только интерполировать значения.
В стандартном шаблоне (без пользовательских настроек) разница заключается в оценке: <% %>
и интерполяции значений: <%= %>
.
Итак, например, ваш шаблон должен быть (со стандартными настройками шаблона):
<% _.each([0,1,2,3,4], function(i) { %> <p><%= i %></p> <% }); %>
Если вы хотите продолжить использование настраиваемых параметров, вам необходимо также определить регулярное выражение для оценки в _.templateSettings. Основываясь на ваших вопросах и комментариях, например:
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@(.+?)\@\>/gim
};
И затем обновите свой шаблон, чтобы использовать форму оценки вокруг блоков кода и форму интерполяции вокруг значений, например:
<script type="text/template" id="pageContent">
<div class="col2">
<@ _.each([0,1,2,3,4], function(i) { @> <p><@= i @></p> <@ }); @>
</div>
</script>
источник: http://documentcloud.github.com/underscore/#template