Mi sono appena accorto di aver frainteso l'attributo el
di uno Backbone.View
. Fondamentalmente le mie visualizzazioni richiedono attributi dinamici id
in base all'attributo del modello. Pensavo di avere questo bel lavoro perché semplicemente specificato che nel mio modello:vista backbone con ID dinamico
<script type="text/template" id="item_template">
<li class="item" id="{{identifier}}">
<span class="name">{{name}}</span>
</li>
</script>
Tuttavia, mi sono reso conto che quello che Backbone è stato effettivamente facendo stava mettendo questo modello compilato in un altro elemento, div
per impostazione predefinita. Ho imparato di più su questo leggendo la documentazione, ma sono ancora confuso su come creare un dinamico id
.
Preferibilmente, mi piacerebbe trovare un modo per rendere tale che le cose nel modello di cui sopra serva come il mio el
, dal momento che ha già tutto ciò che voglio, ma non so se è possibile. Quindi mi chiedo se, semplicemente, ci sia un modo per specificare un attributo dinamico id
.
Ho provato a impostarlo nel metodo initialize
, this.id = this.model.get('attr')
ma non sembra avere alcun effetto, probabilmente perché ormai è già troppo tardi.
Quello che sto facendo attualmente è solo utilizzando jQuery per aggiungere il id
durante render()
:
this.el.attr(id: this.model.get('identifier'));
funziona, ma, naturalmente, sto semplicemente chiedendo se c'è un modo preferito per farlo attraverso Backbone.
Grazie ancora maxl0rd (mi ha aiutato sull'altra domanda: D). Questo in realtà sembra che dovrebbe funzionare: D Proverò e tornare a segnare come corretto :) –
per quelli che non lo so, tagName di default div se non specificato. vedrò un buon numero di modelli che hanno un contenitore [form, div, ecc ...con un id] e che in realtà dovrebbe essere parte della vista e non del modello spesso. come mostrato nella risposta di maxl0rd – PDA