2011-01-28 16 views
27

Quiero incluir una plantilla nested en las demás cont1, cont2, cont3. Y la plantilla anidada debe ocultar un control específico solo para cont1. Antes de incluir en cont1 me gustaría asignar valor a alguna variable de indicador $hideMyControl.Velocidad: Es una manera de verificar si la variable está definida

Y dentro de la plantilla anidada Me gustaría comprobar si $hideMyControl tiene un valor asignado.

¿Cómo realizar este tipo de verificación?

Respuesta

13

Usted puede hacer esto utilizando

#if($!{$articleLeader}) 
     // Perform your operation or the template part you want to show. 
    #end 

Para obtener más información, consulte la sección 'referencia formal' de la Apache Velocity Reference Manual.

+11

No tiene sentido utilizar la notación formal y silenciosa en un #if, que de todos modos no conseguiste bien. Solo haz #if ($ article) ## perform op aquí #end –

+2

Entonces, ¿qué pasa si no está definido? – Snekse

+0

#if ($! {$ ArticleLeader}) no funcionó, #if (! $ {ArticleLeader}) lo hizo ... –

28
#if($hideMyControl) 
    // your code 
#end 

Si se define $ hideMyControl, el código se ejecutará

+10

a menos que hideMyControl sea un booleano que sea falso .... –

0

para comprobar si $ hideMyControl está en el contexto de velocidad y no es boolean valor 'verdadero' (o 'falso' también):

#if ($hideMyControl && $hideMyControl != true) 
    ##do stuff 
#end 

Claro, si realmente usa su variable $ hideMyControl como tipo booleano, no necesita una segunda parte de la condición.

3
#if($!{hideMyControl} != "") 
## do something if $hideMyControl is defined 
#end 

Esto funciona para mí en AWS API Gateway Body Mapping Templates. Consulte Quiet Reference Notation en la Guía del usuario de Velocity para obtener más información.

+0

Solo uno que funcionó para mí en AWS API Gateway Plantillas de mapeo del cuerpo. – leo

1

que estaba usando

#if ($hideMyControl) 
    //do something 
#end 

desde hace unos meses, sin embargo hoy no su trabajo más.

Vine aquí para encontrar ayuda, y notamos una nueva forma de escribirlo:

#if($!{$hideMyControl}) 
    // do something 
#end 

este código funciona!

0

Según el docs for Strict Reference Mode es posible realizar varias construcciones para comprobar si se define una variable.

#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 

Así que este código funciona en mi caso.

#if(!$value) 
    // Perform your operation or the template part you want to show. 
#end 
Cuestiones relacionadas