flask模板中使用Angular如何避免和jinja2衝突

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 = '%%'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章