Avete alcune opzioni.
1) Modificare la notazione delimitatore per angolare:
var app = angular.module('Application', []);
app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('{a');
$interpolateProvider.endSymbol('a}');
}]);
Tutto ciò che è scelto per le inizio e fine simboli fungerà da nuove delimitatori. In questo caso, dovresti esprimere una variabile su Angular usando {a some_variable a}
.
Questo approccio ha il vantaggio di essere necessario impostare solo una volta ed essere esplicito.
2) Modificare la notazione del delimitatore per Jinja2.
Override o sottoclasse Flask.jinja_options.update
sull'oggetto Flask
che si associa alla vostra applicazione (Vars rilevanti: block_start_string
, block_end_string
, variable_start_string
, variable_end_string
, comment_start_string
, comment_end_string
):
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
come c'è un rischio più elevato di dati sensibili arrivando non espanso dal lato server, suggerisco invece di cambiare la sintassi sul front-end (cioè Angolare) su qualsiasi progetto in cui non sei l'unico sviluppatore.
3) uscita un raw block in Jinja2 utilizzando {% raw %}
o {% verbatim %}
:
<ul>
{% raw %}
{% for item in seq %}
<li>{{ some_var }}</li>
{% endfor %}
{% endraw %}
</ul>
4) Uso Jinja2 per scrivere le parentesi nel modello:
{{ '{{ some_var }}' }}
questo sarà emesso come {{ some_var }}
in l'HTML.
La mia preferenza per l'approccio n. 1 è evidente, ma uno dei suddetti funzionerà.