使用Dust.js(领英版)`@eq`匹配多个值

Using Dust.js (LinkedIn version) `@eq` to match multiple values

请注意,我使用的是 LinkedIn 版本的 Dust.js,以及他们的助手。

我有一个 Dust.js 模板,我需要在其中确定某个键的值是否是三个潜在值之一。

{@select key="{movie.type.name}"}
  {@eq value="Episode|Season|Show"}
    <span data-tag="show_level" class="qc_still_info">{@translate key="label.show_level_tag"/}</span>
  {/eq}
  {@default}
    <span class="qc_still_info">{@translate key="label.cannot_tag_show_level"/}</span>
  {/default}
{/select}

{@eq value="Episode|Season|Show"} 是用于匹配 Episode、Season 或 Show 的伪代码。我想发现最惯用的 Dust.js 语法来实现这个目标。

如果数据是这样

{
  movie: {
    type: {
      name: 'Season'
    }
  }
}

{
  movie: {
    type: {
      name: 'Episode'
    }
  }
}

{
  movie: {
    type: {
      name: 'Show'
    }
  }
}

..然后我想要以下输出

<span data-tag="show_level" class="qc_still_info">Add a Show Level Tag</span>

@any 是一个相对较新的 Dust 助手,应该可以解决您的问题(记录在此处:http://www.dustjs.com/guides/dust-helpers/#select-helper)。使用 @any 帮助程序,您的代码看起来像

{@select key=movie.type.name}
  {@eq value="Episode"/}
  {@eq value="Season"/}
  {@eq value="Show"/}
  {@any}
    <span data-tag="show_level" class="qc_still_info">{@translate key="label.show_level_tag"/}</span>
  {/any}
  {@none}
    <span class="qc_still_info">{@translate key="label.cannot_tag_show_level"/}</span>
  {/none}
{/select}