Y at-il quelque chose comme .net MVC 3 vue partielle dans la fiole?
Je veux incorporer un widget dans une page de vue, et ce widget a sa propre logique.Flask vue partielle comme MVC 3
Répondre
Il existe plusieurs façons d'inclure du contenu dans un modèle Jinja2:
La déclaration include
va rendre la vue fournie (avec le contexte actuel par défaut):
{# In your_view_template.jinja #}
{# ... your code ... #}
{% include "widgets/your_widget.jinja" %}
{# ... your code ... #}
Vous pouvez également définir macros et import les dans le modèle de vue:
{# In your_view_template.jinja #}
{% import "widgets/your_widget.jinja" as your_widget %}
{# ... your code ... #}
{{ you_widget.render(your, important, variables, etc.) }}
{# ... your code ... #}
deux import
et include
peut utiliser des variables, donc quelque chose comme cela est possible:
# In your view
if complex_conditions.are_true():
widget = "widgets/special_custom_widget.jinja"
else:
widget = "widgets/boring_widget.jinja"
render_template("your_view.jinja", widget=widget)
{# In your_view_template.jinja #}
{% include widget %}
{#
import widget as sidebar_widget
{{ sidebar_widget.render() }}
would also work
#}
Ces deux fonctionnent de façon similaire à une vue partielle de MVC (au moins, dans la mesure où je les comprends)
Alternativement, si votre widget doit avoir accès à ACLs ou des informations qui ne devraient pas être disponibles pour le calque de modèle et vous ne pouvez pas réécrire votre vue pour profiter de include
et import
vous pouvez prendre la suggestion de @ [Alex Morega] et passer un appelable comme une variable au modèle et de rendre là-bas.
# In your view
render_template("your_view.jinja", widget=you_callable, etc, etc, etc)
{# In your_view_template.jinja #}
{# ... your code ... #}
{{ widget() }}
{# Or, if you are returning HTML that is not a Markup construct #}
{{ widget() | safe }}
{# ... your code ... #}
Vous pouvez même créer votre propre template loader et charger différents modèles en fonction de presque quoi que ce soit. Mais ce serait certainement exagéré pour cette affaire.
- 1. javascript vue partielle 3 mvc
- 2. Comment afficher WebForms .ascx comme vue partielle dans MVC 3
- 3. MVC 3 Rendu 2 niveau Menu comme Vue partielle
- 4. Coloration une vue partielle en MVC 3
- 5. Vue partielle à chaîne dans MVC 3
- 6. MVC 3 Vue partielle ne fonctionne pas
- 7. Asp.net MVC 3 vue partielle postback
- 8. Vues partielles dans ASP.NET MVC 3 (vue partielle partielle dans une vue)
- 9. Asp.net MVC vue partielle
- 10. ASP.Net MVC 3 Razor, approche générique pour FileUpload Vue partielle
- 11. Rendu vue partielle onclick dans asp.net mvc 3 projet
- 12. Retour Razor vue partielle en utilisant JSON (ASP MVC 3)
- 13. MVC 3 - Publication d'une vue partielle sur un contrôleur choisi
- 14. mvc 3 case @value défaut en vue partielle
- 15. MVC 3 Ajax retournant la vue partielle de la zone
- 16. Action du contrôleur ASP.NET MVC 3 pour une vue partielle
- 17. MVC 3 View avec vue partielle et formulaire Ajax
- 18. MVC 3 Afficher un formulaire à partir d'une vue partielle
- 19. Vue partielle avec page vide ASP MVC 3
- 20. jquery mobile mvc 3 mise en page une vue partielle
- 21. ASP.NET MVC 4, vue partielle
- 22. MVC avec Vue partielle Liste
- 23. MVC Routage et Vue partielle
- 24. MVC Vue partielle avec AutoRefresh
- 25. MVC 3, (rasoir) charge partielle avec validation
- 26. Rails 3 vue partielle passer un bloc
- 27. asp.net mvc 2 vue partielle multiple
- 28. asp.net mvc rendu partielle vue sur demande
- 29. Bootstrap Modal et MVC Vue partielle
- 30. jquery charger avec asp.net MVC vue partielle
Vous pouvez écrire le code du widget dans une fonction et appeler cette fonction depuis une vue, n'est-ce pas suffisant? –
@Alex Morega comment appeler le functin dans jinja2 Voir le modèle? – magicshui
@magicshui Vous le passez dans render_template comme argument ... – plaes