Manubrio modello “div” tag invece “script”
-
11-12-2019 - |
Domanda
In realtà la questione è in subj...È possibile rendere i manubri modello di quadro, di riconoscere i modelli all'interno di un tag div e non nel tag script?
Per esempio vorrei creare un template con questo codice:
<style>
div.text-x-handlebars {display:none;}
</style>
<div class="text-x-handlebars-template">
<h2>I'm template</h2>
<p>{{welcomeMessage}}</p>
</div>
Soluzione
Sì, è possibile mettere i modelli in <div>
s piuttosto che <script>
s, per esempio:
Tuttavia, così facendo si è irta di pericoli.Se mettete il vostro modello all'interno di un <div>
quindi il browser interpreta come HTML prima hai compilato;così, se il vostro template HTML non è valido fino al dopo è stato compilato, il browser potrebbe tentare di correggere e fare un casino di cose.Inoltre, se si dispone di id
attributi nei modelli, allora si finirà con duplicati id
s (uno nel modello <div>
e a ripetere in pieno nel modello che hai messo nel DOM) e che causa tutti i tipi di strano e interessante bug.Il browser cercherà anche di scaricare tutte le immagini all'interno dei modelli in <div>
, questo può o non può essere un problema (se potrebbe anche essere auspicabile, ma probabilmente non è auspicabile, se l'immagine si utilizza una variabile di modello nella sua src
attributo).
In pratica, si può fare, ma non si dovrebbe, si dovrebbe mettere i modelli in <script id="..." type="text/x-handlebars-template">
elementi, invece.