【问题标题】:Handlebars: multiple conditions IF statement?车把:多个条件IF语句?
【发布时间】:2017-05-06 05:15:46
【问题描述】:

我没有发现这在 Handlebars 中是可能的......我需要这样的东西:

{{#if A || B || C}} something {{/if}}

这有可能实现吗?我看过这个answer,但由于我需要 3 个变量(A、B、C),我真的不知道如何应用它。有什么想法吗?

【问题讨论】:

  • 和2个参数的思路是一样的。 This answer 允许你使用任何 JS 表达式。

标签: javascript html templates handlebars.js


【解决方案1】:

它们没有多个条件。 但是你可以通过嵌套来实现。这有效:

{{#if A}}
   {{#if B}}
     {{#if C}}
       something 
    {{/if}}
   {{/if}}
{{/if}}

【讨论】:

  • 谢谢@BarlasApaydin
  • 这处理 {{#if A && B && C}} 但不处理 {{#if A ||乙 || C}} 真正实现“或”的场景是 {{#if A}}something{{/if}}{{#if B}}something{{/if}}{{#if C}}something {{/if}} 但这不是 DRY(不要重复自己),因为您必须重复“某事”3 次,其中“某事”可能是一大段代码。
  • 这个问题的答案直接解决了:stackoverflow.com/questions/8853396/…
  • 这个答案如何等同于 {{#if A ||乙 || C}} 东西 {{/if}} ?它不等于 {{#if A && B && C}} something {{/if}} 吗?
【解决方案2】:

这个怎么样?

{{#if A}}
  something
{{else if B}}
  someting B
{{else if C}}
  someting C
{{/if}}

【讨论】:

  • 这应该是选择的答案,因为当 OR 功能未在语言中实现时,它提供了替代解决方案
【解决方案3】:

在 3.0 中你可以做到这一点

{{#if A}}
  something
  {{else if B}}
    something
    {{else if C}}
      something
    {{/if}}
  {{/if}}
{{/if}}

如果你使用低于 3.0 的东西,你可以做多个 ifs

{{#if A}}
{{else}}
  {{#if B}}

...等等希望这会有所帮助

【讨论】:

    猜你喜欢
    • 2012-07-08
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多