Jade以选择选项为条件

时间:2014-07-20 21:46:17

标签: node.js pug

如何将optionselect)设置为selected以匹配当前页面的语言?有没有办法内联它并简化它:

(value="en" #{Locale}==='en' ? ',selected="selected"': '')

我在这个网站上尝试了一些答案,但它们似乎没有用。谢谢。

这是观点:

 if(#{Locale} ==='en')
     option(value="en", selected="selected") #{English}
     option(value="bg") #{Bulgarian}
  else if(#{Locale} === 'bg')
     option(value="en") #{English}
     option(value="bg",selected="selected") #{Bulgarian}

2 个答案:

答案 0 :(得分:6)

改编自this answer,您可以创建一个为您处理逻辑的混合:

mixin lang-option(code, name)
  if (Locale === code)
    option(value=code, selected="selected")= name
  else
    option(value=code)= name

+lang-option('en', English)
+lang-option('bg', Bulgarian)

答案 1 :(得分:0)

如果您还需要参数化“禁用”属性,此解决方案也可以使用。 Jade不会输出评估为false的属性。

//Selects the option when option.value == selectValue
mixin selectOption(option, selectValue)
  option(value=option.value, disabled=option.disabled, selected=(option.value==selectValue))= option.label