2015-05-21 24 views

risposta

79

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à.

1

C'è anche un'altra opzione: boccetta triangolo è un'estensione che consente di creare moduli durante l'integrazione di modelli angolari in jinja2. Invece di cambiare il delimitatore di parentesi angolare (o jinja2), è sufficiente aggiungere un identificatore per dire a jinja2 se l'espressione deve essere rappresentata come una angolare. Basta aggiungere |angular dopo la variabile:

<div>{{variable|angular}}</div> 

Quale sarà reso nel l'output HTML come:

<div>{{variable}}</div> 

prega di notare che pallone-triangolo viene fornito anche con altre funzioni (per le forme di costruzione in angolare stile), tuttavia penso che potrebbe essere una valida opzione per rendere più leggibile il template angolare in jinja2.

Problemi correlati