Flask正在解析AngularJS表达式 [英] Flask is parsing out AngularJS expressions

查看:95
本文介绍了Flask正在解析AngularJS表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Python 3.4.1

Using Python 3.4.1

一切正常,否则.

例如:

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

将创建许多我期望的元素,并且控制台甚至会记录我的期望结果...但是当呈现html时,表达式被删除,并且我遇到了一个空元素列表:

will create elements of however many things I expect, and console is even logging my expected results... but when the html is rendered the expressions are removed and I'm met with a list of empty elements:

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

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

I know this is an issue with Flask using the same curly-brace notation. Does anybody know how to get AngularJS expressions to render otherwise?

两者都尝试过

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.

just renders it as-is without interpreting the delimiters. Leads to a bunch of 404's obviously.

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}}'}}是可行的,但是我将立即切换到另一个框架,而不必像这样管理我的角度代码.

Changing my angular expressions to {{'{{thing}}'}} works but I'd just as soon switch to a different framework than have to manage my angular code like that.

推荐答案

使用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 %%

这篇关于Flask正在解析AngularJS表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆