jquery - spara un evento da una vista a un'altra in backbone





backbone.js (4)


Ecco un altro approccio, che potrebbe essere più intuitivo per le persone che sono alla ricerca di un modo semplice per "bollare" gli eventi da una vista figlia a una vista genitore:

https://github.com/dgbeck/backbone.courier

C'è qualche discussione nel readme su come si confronta con gli aggregatori di eventi.

Ho una vista principale e all'interno di quella vista principale ho un'altra vista che viene creata quando faccio clic su un pulsante. C'è un modo per ascoltare un evento personalizzato nella vista genitore per un evento che viene generato dalla vista figlio. Ho provato a farlo attraverso la proprietà el usando trigger jQuery ma non ha funzionato.




Ya, nessun problema ... ti consigliamo di utilizzare il pattern "Event Aggregator". È 1 linea di codice in Backbone:

var eventAgg = _.extend({}, Backbone.Events);

Ora puoi attivare / associare gli eventi di questo oggetto, in qualsiasi punto della tua app, e far sì che le diverse parti della tua app comunichino tra loro in modo disaccoppiato.

Lo uso MOLTO!

Ne ho anche parlato più a fondo qui: http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/




Il rollare il proprio "aggregatore di eventi" o mediatore o pubub (come facile come descritto sopra) non è necessario poiché Backbone si mescola nell'oggetto Eventi direttamente all'oggetto Backbone nel loro spazio dei nomi. Ecco un link al codice sorgente e la loro documentazione sull'implementazione.

Consenti all'oggetto Backbone di fungere da bus di eventi globali, per le persone che desiderano "pubsub" globali in un luogo conveniente.




Usa il metodo .on() di jQuery on() per collegare i gestori di eventi all'elemento live.

Anche a partire dalla versione 1.9 il metodo .live() viene rimosso.





jquery backbone.js