2013-09-30 16 views
5

Jaki jest sens Application.vent w Marionette? Obiekt Application już rozciąga Backbone.Events, więc mogę napisać co następuje:Jaka jest różnica między poleganiem na mieszance zdarzeń aplikacji a Application.vent?

window.app = new Backbone.Marionette.Application(); 
app.on("my:event", function() { console.log(arguments); }); 
app.trigger("my:event"); 

łatwiej niż:

window.app = new Backbone.Marionette.Application(); 
app.vent.on("my:event", function() { console.log(arguments); }); 
app.vent.trigger("my:event"); 

Czytałem źródła i nie mogę powiedzieć różnicę, ale to nie znaczy, że nie ma ani jednego, a ja jestem w połowie gotowy, aby się założyć, że istnieje dobry powód, dla którego zrobiono to tak, jak jest.

Odpowiedz

3

Podczas gdy funkcja Application.vent pokrywa się ze zdarzeniami wbudowanymi Application, dodaje więcej funkcji niż zwykły mechanizm zdarzeń on/trigger, ponieważ jest to instancja Backbone.Wreqr. Dodaje to zdarzenia poleceń i mechanizm żądania/odpowiedzi, aby umożliwić modułom łatwiejszą komunikację między sobą.

To wciąż tylko wydarzenia w centrum, ale ma na celu ułatwić komunikację między modułami.

+0

OK, ale nic nie powstrzymuje mnie przed używaniem 'Application.vent', gdy chcę zachować zachowanie RequestResponse lub Command zamiast zwykłego zdarzenia, prawda? A może wchodzą w interakcję w pewien sposób, którego nie rozumiem? – Crisfole

+0

Prawidłowo. 'Zachowanie Application.vent's jest oddzielone od prostej obsługi zdarzeń aplikacji, więc możesz wybrać, którego użyć w zależności od twoich potrzeb. –