jinja2的模板和Angular都依赖于双花括号({{ expression }}),如何避免这两者的冲突
方法一
前端代码中修改Angular的渲染标记
var app = angular.module("myApp",[])
app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('{[');
$interpolateProvider.endSymbol(']}');
}]);
这样后面在html中以下面的方式使用Angular
<p>{[ expression ]}</p>
方法二
使用Jinja2的raw屏蔽解析Jinja2渲染
{%raw%}
<p>{{ expression }}</p>
{%endraw%}
方法三
在外层增加两个花括号让Jinja2先解析
<p>{{ '{{ expression }}' }}</p>
方法四
在flask中修改Jinja2的渲染标识
app = Flask(__name__)
app.jinja_env.variable_start_string = '%%'
app.jinja_env.variable_end_string = '%%'

本文介绍四种方法解决Jinja2模板引擎与AngularJS框架因双花括号语法冲突的问题,包括修改Angular渲染标记、使用Jinja2 raw标签、双重花括号嵌套及修改Flask中Jinja2渲染标识。
1450

被折叠的 条评论
为什么被折叠?



