2013-07-20 8 views
5

Avendo appena reso una vista in questo modo:Fare riferimento al elemento figlio di vista Backbone

render: function() { 
    this.$el.html(this.template(this.model.toJSON())); 
    return this; 
}, 

Come posso fare riferimento a uno degli elementi secondari del modello e applicare una funzione jQuery ad esso?

+0

Si dovrebbe vedi: http://stackoverflow.com/questions/17172746/why-using-the-this-selector-method-syntax-with-backbone/17173755#17173755 – mor

risposta

14

Le viste Backbone espongono a dollar $ function che utilizzerà jQuery sotto le copertine, ma nel contesto della vista stessa.

this.$('.child_element_of_my_view_template') 

Ciò funzionerà anche se la vista si stacca ($el non in DOM), ma sarà obiouvsly solo il lavoro per il momento l'elemento che si desidera selezionare esiste all'interno della vista (allegato alla $el).

Ciò significa che è possibile utilizzarlo tranquillamente dopo la prima riga della funzione render. .

+0

aah sì, questo è quello che ho provato ma sembra fare riferimento anche elementi da altre viste, usando questo. $ ('foo') [0] funziona ma non ho capito esattamente cosa sta succedendo. Potrebbe essere qualcosa a che fare con l'API di Google Charts –

+0

@amiawizard .. Controlla a cosa si riferisce "questo. $ El". Sembra che punti ad un elemento più in alto nell'albero 'DOM' –

1

questo $ el ora è un elemento normale jQuery modo da poter chiamare .children su di esso:

this.$el.children() 

selettore Usare qualsiasi jQuery avete bisogno, o .eq (indice) dopo che