312 votes

Comment réaliser un if/else dans mustache.js ?

Il semble plutôt étrange que je ne peux pas comprendre comment faire cela en moustache. Est il pris en charge ?

C’est ma triste tentative à essayer :

Ce n’est évidemment pas bon, mais la documentation ne mentionne pas quelque chose comme cela. Le mot « else » n’est pas même mentionné  :(

En outre, pourquoi moustache est conçu de cette façon ? C’est cette sorte de chose considéré comme mauvais ? Il essaie de me forcer à définir la valeur par défaut dans le modèle lui-même ? Qu’en est-il du cas où cela n’est pas possible ?

592voto

Eneko Alonso Points 2970

C’est comment vous faire if/else dans moustache (parfaitement pris en charge) :

Ou dans votre cas :

Recherchez les sections inversées dans les docs : https://github.com/janl/mustache.js

59voto

BGerrissen Points 9274

C'est quelque chose que vous résolvez le "contrôleur", qui est le point de logicless la création de modèles.

// some function that retreived data through ajax
function( view ){

   if ( !view.avatar ) {
      // DEFAULTS can be a global settings object you define elsewhere
      // so that you don't have to maintain these values all over the place
      // in your code.
      view.avatar = DEFAULTS.AVATAR;
   }

   // do template stuff here

}

C'est en fait BEAUCOUP mieux que le maintien de l'url de l'image ou d'autres médias qui pourrait ou ne pourrait pas changer dans vos modèles, mais faut s'habituer à. Le point est de désapprendre modèle de la " vision en tunnel, un avatar img url est lié à être utilisé dans d'autres modèles, allez-vous maintenir cette url sur X de modèles ou d'un seul des paramètres par DÉFAUT de l'objet? ;)

Une autre option est de faire ce qui suit:

// augment view
view.hasAvatar = !!view.avatar;
view.noAvatar = !view.avatar;

Et dans le modèle:

{{#hasAvatar}}
    SHOW AVATAR
{{/hasAvatar}}
{{#noAvatar}}
    SHOW DEFAULT
{{/noAvatar}}

Mais qui va à l'encontre de toute la signification de logicless la création de modèles. Si c'est ce que vous voulez faire, vous voulez logique de création de modèle et vous ne devriez pas utiliser la Moustache, mais ne donnez-vous une chance équitable de l'apprentissage de ce concept ;)

18voto

anonym Points 127

Votre instruction else devrait ressembler à ceci (note du `` ) :

À moustache, cela s’appelle « Inverted sections ».

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X