Flask正在解析AngularJS表达式


问题内容

使用Python 3.4.1

否则一切正常。

例如:

<li ng-repeat="thing in things"><a href="#">{{thing}}</a></li>

将创建任何我期望的内容的元素,并且控制台甚至记录了我的期望结果…但是当呈现html时,表达式被删除,并且遇到了空元素列表:

<li ng-repeat="thing in things"><a href="#"></a></li>

我知道这是使用相同花括号符号的Flask的问题。有人知道如何获取AngularJS表达式以其他方式呈现吗?


都尝试过:

jinja_options = Flask.jinja_options.copy()
jinja_options.update(dict(
    block_start_string='<%',
    block_end_string='%>',
    variable_start_string='%%',
    variable_end_string='%%',
    comment_start_string='<#',
    comment_end_string='#>',
))

app = Flask(__name__)
app._static_folder = 'static'

app = Flask(__name__)
app._static_folder = 'static'
app.jinja_options.copy().update(dict(
    block_start_string='<%',
    block_end_string='%>',
    variable_start_string='%%',
    variable_end_string='%%',
    comment_start_string='<#',
    comment_end_string='#>',
))

使用标签

<script type="text/javascript" src="%% url_for('static', filename='js/lib/angular.min.js') %%"></script>

只是按原样呈现它,而无需解释定界符。显然导致一堆404。


app = Flask(__name__)
app._static_folder = 'static'
app.jinja_options.update(dict(
    variable_start_string='%%',
    variable_end_string='%%'
))

app = Flask(__name__)
app._static_folder = 'static'
app.jinja_options.update(
    variable_start_string='%%',
    variable_end_string='%%'
)

都给 TypeError: 'ImmutableDict' objects are immutable

将我的角度表达式更改为{{'{{thing}}'}}可以工作,但是我将立即切换到另一个框架,而不必像这样管理我的角度代码。


问题答案:

用途jinja_options

app = Flask(__name__)

jinja_options = app.jinja_options.copy()
jinja_options.update(dict(
    block_start_string='<%',
    block_end_string='%>',
    variable_start_string='%%',
    variable_end_string='%%',
    comment_start_string='<#',
    comment_end_string='#>',
))
app.jinja_options = jinja_options

在模板中:

<li ng-repeat="thing in things"><a href="#">{{thing}}</a></li>
%% jinja_expression %%