Je souhaite inclure un modèle nested
dans d'autres cont1
, cont2
, cont3
. Et le modèle imbriqué doit masquer un contrôle spécifique pour cont1 uniquement. Avant l'inclusion dans cont1
, j'aimerais attribuer une valeur à une variable d'indicateur $hideMyControl
.
Et à l'intérieur du modèle imbriqué, j'aimerais vérifier si la valeur attribuée à $hideMyControl
est affectée.
Comment effectuer une telle vérification?
Vous pouvez le faire en utilisant
#if($!{$articleLeader})
// Perform your operation or the template part you want to show.
#end
Pour plus d'informations, reportez-vous à la section "Référence formelle" du Manuel de référence Apache Velocity .
#if($hideMyControl)
// your code
#end
Si $ hideMyControl est défini, votre code sera exécuté
#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end
Cela fonctionne pour moi dans les modèles de mappage de corps AWS API Gateway. Veuillez consulter Notet Reference Notation dans le Guide de l'utilisateur Velocity pour plus d'informations.
J'utilisais
#if ($hideMyControl)
//do something
#end
depuis quelques mois, mais aujourd'hui, il ne fonctionne plus.
Je suis venu ici pour trouver de l'aide et j'ai remarqué une nouvelle façon de l'écrire:
#if($!{$hideMyControl})
// do something
#end
ce code fonctionne!
Pour vérifier si $ hideMyControl est dans le contexte Velocity et que IS NOT boolean est la valeur 'true' (ou 'false' également):
#if ($hideMyControl && $hideMyControl != true)
##do stuff
#end
Bien sûr, si vous utilisez réellement votre variable $ hideMyControl en tant que type booléen, vous n'avez pas besoin de la deuxième partie de la condition.
Selon les docs de Strict Reference Mode , il est possible de vérifier plusieurs constructions pour déterminer si une variable est définie.
#if ($foo)#end ## False #if ( ! $foo)#end ## True #if ($foo && $foo.bar)#end ## False and $foo.bar will not be evaluated #if ($foo && $foo == "bar")#end ## False and $foo == "bar" wil not be evaluated #if ($foo1 || $foo2)#end ## False $foo1 and $foo2 are not defined
Donc, ce code fonctionne dans mon cas.
#if( !$value )
// Perform your operation or the template part you want to show.
#end