Comment une vue doit-elle el
être gérée? Il doit être défini, sinon les événements ne se déclenchent pas (voir ici ).
Mais devrait-il s'agir d'un élément déjà présent sur la page? Dans mon application, je rend un modèle (jQuery Templates) dans une Fancybox. Que devrait-il el
être dans ce cas?
javascript
backbone.js
backbone-views
Manuel Meurer
la source
la source
el
chose.el
est commegf
. personne ne peut les comprendre pleinement.Réponses:
Une vue el est l'endroit où toute la liaison d'événement a lieu. Vous n'êtes pas obligé de l'utiliser, mais si vous voulez que le backbone déclenche des événements, vous devez effectuer votre travail de rendu sur el. Un view el est un élément DOM mais il n'est pas nécessaire qu'il s'agisse d'un élément préexistant. Il sera créé si vous n'en tirez pas un de votre page actuelle, mais vous devrez l'insérer dans la page si jamais vous voulez le voir faire quelque chose.
Un exemple: j'ai une vue qui crée des éléments individuels
La première vue crée simplement les éléments de la liste et la deuxième vue les place réellement sur la page. Je pense que c'est assez similaire à ce qui se passe dans l' exemple ToDo sur le site backbone.js. Je pense que la convention est de vous rendre contenu dans le el. Ainsi, le el sert de lieu d'atterrissage ou de conteneur pour placer votre contenu basé sur un modèle. Backbone lie ensuite ses événements aux données de modèle qu'il contient.
Lorsque vous créez une vue , vous pouvez manipuler l'el de quatre façons en utilisant
el:
,tagName:
,className:
etid:
. Si aucun de ceux-ci n'est déclaré, el par défaut est un div sans id ni classe. Il n'est pas non plus associé à la page à ce stade. Vous pouvez changer la balise en autre chose en utilisant tagName (par exempletagName: "li"
, vous donnera un el de<li></li>
). Vous pouvez également définir l'id et la classe de el. El ne fait toujours pas partie de votre page. La propriété el vous permet de faire une manipulation très fine du grain de l'objet el. La plupart du temps, j'utilise unel: $("someElementInThePage")
qui lie en fait toute la manipulation que vous faites à el dans votre vue à la page en cours. Sinon, si vous voulez voir tout le travail que vous avez fait dans votre vue apparaître sur la page, vous devrez l'insérer / l'ajouter à la page ailleurs dans votre vue (probablement dans le rendu). J'aime penser à el comme le conteneur que toute votre vue manipule.la source
Un peu vieux maintenant, mais j'étais également confus, et donc pour les autres personnes qui arrivent ici, ce violon pourrait aider - http://jsfiddle.net/hRndn/2/
la source
Vous voulez que votre 'el' fasse référence à un élément qui contient un élément enfant qui a un événement qui déclenche une modification dans votre vue. Peut être aussi large qu'une balise "body".
la source