检查 Jade mixin 中的参数

Checking for parameters in Jade mixin

我正在尝试检查调用 Jade 混入时是否设置了参数。以下示例不起作用,我不明白为什么。

mixin foo(bar)

  if bar
    - var text = 'a'
  else
    - var text = 'another'

  .hero-unit.macro-unit
    p This is #{text} mixin.


// Calling mixin:

+foo
+foo(bar)
+foo
+foo(bar)

预期输出:

This is a mixin.
This is another mixin.
This is a mixin.
This is another mixin.

实际输出:

This is a mixin.
This is a mixin.
This is a mixin.
This is a mixin.

我也曾尝试按照 this answer 中的建议将 if bar 更改为 if (typeof(username) !== 'undefined'),但没有成功。我哪里错了?

当你调用 mixin 并传入 bar 时。这是一个未定义的变量。如果您要将其更改为。

+foo
+foo('bar')
+foo
+foo('bar')

你会发现你会得到预期的结果。