Выключение двойных фигурных скобок {{}} в шаблонах Swig для AngularJS

Шаблоны Swig и AngularJS используют обозначение двойной фигурной скобки. Как можно спрятать двойные завитки в Swig для Angular?

Ответы

Ответ 1

Двойные завитки можно экранировать с помощью

{% raw %}

eg: {% raw %}{{ foobar }}{% endraw %}

Заставляет контент не подвергаться автоматическому экранированию. Все инструкции swig будут проигнорированы, и содержимое будет отображаться точно так, как было указано. См. руководство Swig/tags/raw.

Ответ 2

Почему бы не заменить {{}} на [[]] в шаблонах, настроив AngularJS на принятие [[]] в качестве нового {{}}. Попробуйте это в Angular -App-Config (с помощью angularjs-1.2.4):

config(['$interpolateProvider',
    function($interpolateProvider) {
        // Swig uses {{}} for variables which makes it clash with the use of {{}} in AngularJS.
        // Replaced use of {{}} with [[]] in AngularJS to make it work with Swig.
        $interpolateProvider.startSymbol('[[');
        $interpolateProvider.endSymbol(']]');
    }
])

Ответ 3

Вместо замены знака интерполяции angular. Изменение значений по умолчанию для swig. Следующий код сделает это.

var swig = require('swig'); 
swig.setDefaults({
   varControls: ['[[', ']]'] 
});