Скорость: любой способ проверить, определена ли переменная - PullRequest
30 голосов
/ 28 января 2011

Я хочу включить один шаблон nested в другие cont1, cont2, cont3.И вложенный шаблон должен быть скрыт одним конкретным элементом управления только для cont1.Перед включением в cont1 я бы хотел присвоить значение некоторой флаговой переменной $hideMyControl.

А внутри вложенного шаблона я бы хотел проверить, присвоено ли $hideMyControl значение.

Как выполнить такую ​​проверку?

Ответы [ 6 ]

32 голосов
/ 14 февраля 2013
#if($hideMyControl)
    // your code
#end

Если определено $ hideMyControl, ваш код будет выполняться

16 голосов
/ 28 января 2011

Вы можете сделать это, используя

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

Для получения дополнительной информации см. Раздел «Официальные ссылки» Справочного руководства Apache Velocity .

5 голосов
/ 17 января 2017
#if($!{hideMyControl} != "")
## do something if $hideMyControl is defined
#end

Это работает для меня в шаблонах отображения тела шлюза AWS API. Для получения дополнительной информации см. Тихая справочная нотация в Руководстве пользователя Velocity.

1 голос
/ 04 апреля 2017

Я использовал

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

с тех пор, как несколько месяцев назад однако сегодня он больше не работает.

Я пришел сюда, чтобы найти помощь, и заметил новый способ написания:

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

этот код работает!

0 голосов
/ 21 июня 2017

В соответствии с документами для строгого режима ссылки можно несколькими конструкциями проверить, определена ли переменная.

#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

Так что этот код работает вмое дело.

#if( !$value )
  // Perform your operation or the template part you want to show.
#end
0 голосов
/ 25 февраля 2016

Чтобы проверить, находится ли $ hideMyControl в контексте Velocity и не имеет логического значения 'true' (или 'false' также):

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

Конечно, если вы действительно используете переменную $ hideMyControl в качестве логического значениятипа, вам не нужна вторая часть условия.

...