En cachant la vue dans le Gestionnaire de Région, d'un autre point de vue est illustré
Je suis à l'aide de la Marionnette de la région de manager pour gérer mon point de vue. Il y a trois grandes régions:
1] du menu Supérieur de la région
2] de la barre latérale de la région
3] région Principale ( la page en question, qui ne cesse de changer )
En fonction des actions sur le menu du haut et la barre latérale-je garder la modification de la vue qui est rendu dans les Principales régions à l'aide de App.MainRegion.show(view)
.
Maintenant, il est un point de vue particulier(persistView
) qui, une fois rendu ne doit pas être fermé, sauf si l'onglet/le navigateur est fermé.
Naturellement je ne peux pas utiliser le App.MainRegion.show(view)
ici pour foll raisons:
- Lorsque le
show(persistView)
est appelé la première fois, tout est bien. - Si je naviguer loin de la
show(otherview)
appelleraclose()
depersistView
. Ce qui n'est pas nécessaire.
Ma solution actuelle est:
- Ont une nouvelle région appelée
persistRegion
juste en dessous de lamainRegion
. persistView
seront toujours rendus dans lepersistRegion
.- Dans le
onShow()
depersistView
, je cacher lamainRegion
et de montrer laperistRegion
Ci-dessus fonctionne, mais je pense que c'est très hackish. Aussi, je suis coincé lorsque après l'étape 3, l'utilisateur accède à tout autre point de vue. Maintenant comment je dis persistView
qu'il devrait se cacher et de montrer la mainRegion
?
Toute aide sera très appréciée.
OriginalL'auteur CodeRain | 2012-06-08
Vous devez vous connecter pour publier un commentaire.
Je pense que votre mise en page sonne bien, en termes d'avoir une région à détenir la "persistante" afficher vs la vue principale. Mais je ne voudrais pas laisser ces deux régions connaître les uns les autres ou essayer de contrôler les uns les autres de l'écran. Au lieu de cela, je voudrais créer un objet distinct qui sait comment faire cela.
Cet objet serait responsable pour écouter de la bonne événements à partir de différents points de vue et les régions impliquées. Ensuite, il serait de déterminer quelles sont les régions à afficher et à masquer.
La clé est dans la façon de l'afficher et de masquer les régions, bien que les. Vous ne voulez pas fermer les régions et supprimer les points de vue en eux - au moins, pas de la
persistRegion
. Ce que vous pouvez faire au lieu de cela, cependant, esthide()
la régionel
persistRegion.$el.hide()
et
persistRegion.$el.show()
la région
$el
attribut sera disponible après d'un point de vue a été affichée à l'intérieur de la région, ou après l'appel deregion.ensureElement()
....et il a de nouveau changé, à
_ensureElement()
OriginalL'auteur Derick Bailey
Je peut vous suggérons d'utiliser la méthode reset() de la marionnette régions, au lieu de se cacher et de montrer de la région de l'élément.
Voici un lien vers la doc http://marionettejs.com/docs/v2.4.4/marionette.region.html#reset-a-region
=>Une région peut être réinitialisée à tout moment. Cela détruit toute vue existante
affiché, et supprime le cache el. La prochaine fois que l'
la région montre une vue, de la région el est interrogée à partir de
le DOM.
myRegion.reset();
Ceci est utile lorsque les régions sont ré-utilisés à l'échelle de la vue
les instances et dans les tests unitaires.
OriginalL'auteur David Fallas