Как мне избежать разделителей "{{" и "}}" в шаблонах Go?

Я использую AngularJS в качестве интерфейсной библиотеки JS с шаблонами Go в рамках Revel для создания разметки на серверной части.

Но и Go, и Angular используют {{ а также }} для разделителей в их шаблонах. Как я могу избежать их в Go, чтобы передать их AngularJS?

4 ответа

Решение

Я не знаю, как избежать этого, но вместо этого вы можете выбрать другой разделитель Delims:

func (t *Template) Delims(left, right string) *Template

Согласно списку рассылки, это, вероятно, лучший вариант. Аргумент состоял в том, что если вы избежите этого, ваши шаблоны будут трудно читать, поэтому в любом случае, вероятно, будет лучше изменить разделитель, чем пытаться его взломать.

{{"{{"}}
{{"}}"}}

производит

{{
}}

Простой обходной путь будет использовать

{{`{{Your.Angular.Data}}`}}

В Revel есть способ справиться с этим:

В /conf/app.conf добавьте эту строку:

template.delimiters = "[[]]"

Он будет использовать [[]] вместо использования по умолчанию {{}}, вы также можете использовать:

template.delimiters = "{{{}}}"

Так, для упования он использует {{{}}}, для angularJS - {{}}

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