20

有没有更好的方法来填充基于 Jade 的选择字段,我目前正在使用这个示例。有没有更好的方法来不破坏模板代码?

项目值是“天”的例子。

    select
      repeation = [ 'no-repeat', 'day', 'week', 'month']
      for item in repeation
        if job.repeat == item
          option(selected="true") #{item}
        else
          option #{item}

当项目是 ['day', 'week'] 的数组时,如何显示多个选择?

// 编辑多个元素的小可能解决方案

      enginges = [ 'google', 'bing', 'yahoo', 'duckduckgo']
      for engine in enginges
        option(selected=job.sources.indexOf(engine) != -1) #{engine}
4

2 回答 2

38

您应该能够执行以下操作:

for item in repeation
  option(selected=job.repeat == item) #{item}

相同的概念应该能够应用于多项选择下拉菜单。

于 2012-04-28T23:13:29.170 回答
2

有几件事要添加到答案中(https://stackoverflow.com/a/10368381/870274):

  1. “each”现在更常用,而不是“for”

  2. 不要忘记以下行的“-”:repeat = [ 'no-repeat', 'day', 'week', 'month'] ,否则会出现编译错误。所以最终结果将是(与您的相同):

    select
      - repeation = [ 'no-repeat', 'day', 'week', 'month']
      each item in repeation
        option(selected=job.repeat == item) #{item}
    
于 2016-05-16T22:20:54.310 回答