转义AngularJS的Swig模板中的双花括号{{}}

Jac*_*son 14 node.js angularjs swig-template

Swig模板和AngularJS都使用双花括号表示法.如何在Swig for Angular中逃脱双重曲线?

ors*_*zky 26

双层玻璃可以逃脱

{% raw %}

eg: {% raw %}{{ foobar }}{% endraw %}
Run Code Online (Sandbox Code Playgroud)

强制内容不会自动转义.所有swig指令都将被忽略,内容将完全按照给定的方式呈现. 请参阅Swig手册/标签/原始.


Mar*_*tin 14

为什么不通过将AngularJS配置为接受新模板来替换模板中的{{}}with .在你的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(']]');
    }
])
Run Code Online (Sandbox Code Playgroud)

  • 我只需要在Express服务的索引布局上转义单个实例,其余的页面由Angular处理,因此在我的情况下重新配置Angular就没有意义了.虽然可能是其他人的好解决方案. (5认同)

San*_*mal 9

而不是替换角度的插值符号.更改swig的默认值.以下代码将会这样做.

var swig = require('swig'); 
swig.setDefaults({
   varControls: ['[[', ']]'] 
});
Run Code Online (Sandbox Code Playgroud)