Passage de paramètres dans l'épine Dorsale des événements de l'objet de l'épine dorsale de la vue
J'ai les événements suivants pour l'épine Dorsale de la Vue. Son produit - avec trois onglets ("Tous", "Top 3", "Top 5")
Je peux en quelque sorte passer un paramètre dans la déclaration de la méthode, de sorte qu'il est équivalent à celui-ci (ce qui ne fonctionne pas)?
events : {
"click #top-all": "topProducts(1)"
"click #top-three": "topProducts(2)"
"click #top-ten": "topProducts(3)"
},
topProducts(obj){
//Do stuff based on obj value
}
Vous devez vous connecter pour publier un commentaire.
Vous pourriez mettre l'argument supplémentaire dans un attribut de données sur l'élément cliquable au lieu de cela, quelque chose comme ceci:
Et puis
topProducts
peut le comprendre lui-même:ev.target
(oùev
est le cas) à la place. Jetez un oeil à ma version fixe s'il vous plaît.ev.target
(lorsque vous ne pouvez pas compter surthis
) combinées avec les données d'attributs est une excellente façon de garder une trace des choses.{ 'click #top-all': 'topProducts', 'click #top-three': 'topProducts', ... }
..eventName( [eventData ], handler(eventObject) )
x.click(...)
ou tel? Vous permettra de le Backbone de gérer les événements par le biais de la délégation.events
mais c'est juste brouiller les choses.Je préfère en général faire quelque chose comme ceci:
Ce que vous pouvez faire, c'est vérifier l'id de l'élément qui est reçu comme currentTarget dans les arguments.
e.currentTarget.className
au lieu dee.currentTarget.id
. Aussi, il y a beaucoup de propriétés intéressantes à l'intérieur dee
objet!Vous pouvez le faire à l'aide de fermetures: