JADE узел js, чтобы отметить опцию, выбранную из значения - PullRequest
0 голосов
/ 19 ноября 2018

Как пометить опцию выбранной базы на parsedValue?например.если parsedValue равно 0, то должна быть выбрана опция со значением 0.Если parsedValue равно 1, то следует выбрать параметр со значением 1?

Код:

parsedValue = 0;

select#myDD.b.pa2.input-reset.ba.bg-transparent.hover-bg-black.hover-white.w-100(type='text', name='myDD')
 option(label='zero', value='0')
  | Space Type
 option(label='first', value='1')
  | Space Type
 option(label='second', value='2')
  | Space Type
 option(label='third', value='3')
  | Space Type

1 Ответ

0 голосов
/ 19 ноября 2018

Это хороший случай для использования mixin :

- var parsedValue = 2

mixin option
  option(selected= (attributes.value == parsedValue))&attributes(attributes)
    if block
      block

select
  +option(label='zero',   value='0') Option 0
  +option(label='first',  value='1') Option 1
  +option(label='second', value='2') Option 2
  +option(label='third',  value='3') Option 3

Это беспараметрический миксин, который использует аргумент неявный attributes .Какие бы атрибуты вы ни указали при вызове mixin, они будут отражены в отображаемом элементе option.

Кроме того, он условно устанавливает атрибут selected, если значение атрибута value соответствует переменной parsedValue.

Примечание. Хотя можно ожидать, что выбранные option будут отображаться с selected="true", а другие option элементы будут отображаться с selected="false", Pug достаточно умен с логическими атрибутами , чтобы очистить это и использовать selected="selected" или вообще пропустить атрибут.

Результирующий HTML:

<select>
  <option label="zero" value="0">Option 0</option>
  <option label="first" value="1">Option 1</option>
  <option selected="selected" label="second" value="2">Option 2</option>
  <option label="third" value="3">Option 3</option>
</select>
...