【问题标题】:Closing if else statement manually in meteor-jade在流星玉中手动关闭 if else 语句
【发布时间】:2014-10-17 05:54:04
【问题描述】:

我想知道如何在流星玉中关闭 if else 语句,例如:

if foo
  html elements here
else
  html elements here

而我想要达到的是

if foo
  html elements here
else
  html elements here
  html elements also here but it should be outside of the else statement and indented.

【问题讨论】:

    标签: meteor pug


    【解决方案1】:

    由于在 Jade 中缩进被解释为包含,因此您不能将这些元素对齐。要将元素放在 if/else 语句之外,您需要取消缩进:

    if daytime
      yellow html elements
    else
      blue html elements
    green html elements
    

    如果您希望 green html 元素成为 yellowblue 元素的子元素,具体取决于 daytime 值,您可以使用 mixin 并将块传递给它:

    mixin color(daytime)
      if daytime
        yellow
          if block
            block
      else
        blue
          if block
            block
    
    +color(daytime)
      green html elements
    

    【讨论】:

    • 流星玉可以用mixin吗?
    • 啊,您应该改用模板 - 请参阅 readme。不过,它们看起来几乎一样。只需将mixin color(daytime) 替换为template(name="color"),然后将传递给它的参数命名为:+color(daytime=daytime)
    • 此外,block 关键字显然已被 content 取代,尽管文档对此并不清楚。
    • 啊,我明白了。不想为项目的小型 sn-ps 使用模板。我想我会远离或重新处理模板内部发生的逻辑。感谢您的帮助:)。
    • 实际上,在 Blaze 中,模板和块助手之间没有太大区别,因此将模板用于此类小型实用程序是完全有效的。
    猜你喜欢
    • 2017-09-05
    • 1970-01-01
    • 2016-10-15
    • 2018-03-29
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多