Extra divs dans itemviews et de mises de la colonne vertébrale.Marionnette
Je suis en train de sortir de la colonne vertébrale.Marionnette et je suis confus quant à pourquoi mes Mises en page et ItemViews générer extra divs.
exemple dans le Café btw.
AppLayout = Backbone.Marionette.Layout.extend
template: "#my-layout",
regions:
menu: "#menu",
content: "#content"
MyMenuView = Backbone.Marionette.ItemView.extend
template: '#project_wiz_nav_template'
MyContentView = Backbone.Marionette.ItemView.extend
template: '#project_setup_template'
MyApp = new Backbone.Marionette.Application()
MyApp.addRegions
mainRegion: '#project'
MyApp.addInitializer ->
layout = new AppLayout()
MyApp.mainRegion.show(layout)
layout.menu.show(new MyMenuView())
layout.content.show(new MyContentView())
MyApp.start()
C'est ce que index.html contient:
<div id='project'></div>
<script type='text/template' id='project_wiz_nav_template'> <h2>HI</h2> </script>
<script type='text/template' id='project_setup_template'> <h2>WORLD</h2> </script>
<script id="my-layout" type="text/template">
<h2>Hello!</h2>
<div id="menu"></div>
<div id="content"></div>
</script>
C'est ce qu'il produit:
<div id="project">
<div>
<h2>Hello!</h2>
<div id="menu">
<div>
<h2>HI</h2>
</div>
</div>
<div id="content">
<div>
<h2>WORLD</h2>
</div>
</div>
</div>
</div>
Comme vous pouvez le voir, elle continue de générer extra divs pour les vues et les mises en page. J'ai essayé d'ajouter el: '#menu'
et el: '#content'
en vain.
Lorsque
double possible de Backbone js: Comment faire pour supprimer un tag supplémentaire en vue?
double possible de stackoverflow.com/questions/7096670/...
el
ou ( tagName
,id
,classname
) ne sont pas spécifiés pour une vue par défaut de balise div c'est la raison. Peut-être #menu, #contenu ne peut pas être trouvé aussidouble possible de Backbone js: Comment faire pour supprimer un tag supplémentaire en vue?
double possible de stackoverflow.com/questions/7096670/...
OriginalL'auteur corroded | 2012-06-25
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas à cause de la Marionnette. Épine dorsale génère un
<div>
classe pour vous par défaut. Vous pouvez définir la balise via letagName
attribut. Voir les commentaires sur la question pour un duplicata de ce.Avez-vous jamais trouver un moyen de changer la extra <div> comportement lors de l'affichage des régions?
Bailey, Est-il de toute façon pour Tres un commentaire pour le travail? J'ai travaillé sur ce projet pendant des heures et serait beaucoup plus facile de travailler avec
Bon, oui, c'est l'épine Dorsale.Comportement de l'affichage. Mais nous utilisons de Marionnettes les Régions pour AMÉLIORER la normale de la colonne vertébrale.Les vues. Ce comportement est tout simplement pas intuitif et permet des Régions moins utile.
Vous pouvez utiliser
onRender
déclencher en vous des vues de fairethis.setElement(this.$el.find('selector'));
. La seule chose est que vous auriez probablement besoin de créer une classe de base pour votre ItemView ou/et LayoutView...OriginalL'auteur Derick Bailey
Un hacky solution de contournement, mais jQuery est le plus proche() fait le travail pour moi. Plutôt que d'utiliser le retour de l'
myView.el
directement, je suis en utilisant$(myView.el).closest("div").html()
-- comme je l'ai dit, hacky, mais comme un correctif à court terme.J'ai été bricoler avec ce tutoriel: http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/comment-page-1/#comment-3801, qui prend un modèle imbriqué et crée un accordéon vue à l'aide de Bootstrap. Je voulais faire la même chose avec son point de départ, en utilisant uniquement la jQueryUI widget accordéon, qui est la raison que j'ai besoin d'un déballé vue de revenir, d'où le filtrage avec le plus proche().
Autre que l'ajout de la jqueryUI liens et de changer le code HTML renvoyé tel que défini ci-dessus, ça fonctionne plutôt bien: http://dartsleague.parentleafarm.com/superheroes/
OriginalL'auteur Snowmonkey
Spécifier votre el de la propriété. Je pense que cela va résoudre le problème:
http://documentcloud.github.com/backbone/#View-el
Uncaught Error: HIERARCHY_REQUEST_ERR: DOM Exception 3
. Je pense que cela pourrait être plus d'un pantin chose au sujet de ItemView, mais je ne suis pas sûr...cette erreur vient de jQuery. cela signifie que vous essayez d'insérer un élément du DOM dans un invalide. Par exemple, vous pouvez essayer d'insérer un
<tr>
balise dans un<ul>
tag, qui n'est pas valide.Je vais avoir vraiment du mal avec cette question. Avant les 2.x mise à jour de la spécification de la el de la propriété des œuvres. La mise à niveau des sauts de cela je suis confus quand vous dites que c'est un JQuery problème. Comment ça marche 1.x alors? J'ai un onglet de contrôle qui a cessé de fonctionner avec les 2.x mise à jour parce que je ne suis pas en mesure de générer les DOM structure JQuery veut. Ce qui a changé dans la mise à jour à faire de la spécification de la el de la propriété d'arrêt de travail?
OriginalL'auteur Rimian