W grze Backbone używam nowego zdarzenia Backbone.listenTo
. Jeden z moich wystąpień ma słuchacza dołączony do trzech różnych zdarzeń, np .:Jak znaleźć wyzwalane wydarzenie z kręgosłupa.listento?
this.listenTo(this._Collection, 'reset add change', this._setCollection);
nazywana jest odpowiednio kiedy to miało i nie ma tam żadnych problemów. Nie wiem, jak się dowiedzieć, które zdarzenie zostało uruchomione. Mam dostęp do argumentu e
Zastosowanie:
_setCollection: function(e) {
// Do fun stuff
}
Problem polega na tym, że e
argumentem wysyła tylko kopię kolekcji i nie wspominając o jakie wydarzenie jest rzeczywiście wyzwolony. Próbowałem już e.type
i e.target
, ale te obiekty nie istnieją. Oto kopia obiektu e
z narzędzi Chrome Dev:
_byCid: Object
_byId: Object
_events: Object
add: Array[1]
change: Array[1]
remove: Array[1]
reset: Array[1]
__proto__: Object
_listenerId: "l16"
length: 3
models: Array[3]
Jak mogę znaleźć to zdarzenie zostało wywołane?
EDIT: Odpowiedź Wyjaśnienie: Chociaż wyraźna odpowiedź jest poprawna technicznie, jak podkreślił mu_is_too_short poprawną odpowiedzią jest za pomocą wielu ładowarki i nie wykonując tego typu „szykany”
Tak, całkowicie się zgadzam. Znalazłem problem, ponieważ patrzyłem na zdarzenie remove i zawierałem je wszystkie w ramach jednej funkcji. Zauważyłem, że argumenty są odmienne i powinny to wyjaśnić. W każdym razie, dzięki za twój hackery. Użyję dla każdego różnych programów obsługi. – Brandon