Используя <% в Underscore.js templating, не разбирая его

Usually, if you use templating by Underscore.js, any expression that looks like <% ... %> and <%= ... %> is parsed by Underscore.js

How do I escape such a value, in case I want to embed the text <% ... %> inside the template?

Помещать его, другими словами: Как я могу сказать Underscore.js игнорировать что-то, что похоже на заполнителя, но это не заполнитель?

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

_.template('<%= name %> ### \<%= name %>', { name: 'foo' });

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

Update: To make more clear, what I want from the line above - it should result in

foo ### <%= name %>
2
nl ja de
И что является символом ESC в этом случае?
добавлено автор Golo Roden, источник
Да, конечный результат будет HTML. Дело в том, что там должен быть любым выбором отключить парсинг. Иначе не было бы возможно включить последовательность <% = % ABC> как последовательность без потребности в другой переменной.
добавлено автор Golo Roden, источник
@madhairsilence, Что точно делает связь, которую вы обеспечили, имеют вместе с моим вопросом, за исключением того, что it' s оба о возможности избежать, но возможности избежать в совершенно другом виде?
добавлено автор Golo Roden, источник
предшествовать с символом ESC????
добавлено автор madhairsilence, источник
stackoverflow.com/questions/8298274/…
добавлено автор madhairsilence, источник
Что вы думаете о помещении <% =... %> в ценности имя , а не шаблон? Конечный результат собирается быть HTML?
добавлено автор mu is too short, источник

1 ответы

If your final output is going to be HTML, you could replace < and > with their HTML escape code thingers:

_.template('<%= name %> ### <%= name %>', { name: 'foo' });

You could also modify Underscore's template settings to support these things, so that <%= ... %> means nothing to Underscore:

_.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g
};
var t = _.template('{{name}} ### <%= name %>', { name: 'foo' });
3
добавлено