在node.js中,如何将变量传递给:来自jade的stylus过滤器?

时间:2013-03-23 07:41:17

标签: node.js pug stylus

jade内创建一个我希望stylus过滤器可以使用的变量。

使用#{var}似乎不起作用。例如,这段代码:

  - var color1 = 'blue'
  stylus:
    div
      background-color pink
      color #{color1}

产生错误:

/home/data/tnt/server/node/www/tech/cool.jade:2
   1| div
   2|   background-color pink
 > 3|   color #{color1}
   4|   

expected "indent", got "outdent"

如何在jade过滤器中看到color1变量stylus

1 个答案:

答案 0 :(得分:5)

过滤器(如手写笔,降价等)在“编译时”执行,只执行一次。

但文本替换是在运行时完成的,因此过滤器无法访问变量。

过滤器只能访问原始文本,例如。 color #{color1}而非color blue

作为一种解决方法,您可以创建一个辅助方法,在其中您可以根据多个位置的建议进行手写笔模板化和自我渲染(我只找到了使用降价过滤器的示例,但过滤器的工作方式相同,因此它们也适用于{ {1}}过滤器):