使用ejs过滤器的默认值

时间:2012-11-02 23:34:02

标签: node.js express ejs

如果item.description未定义或为空,我想默认为“无描述”:

我尝试了以下内容:

  <%-: ( item.description | markdown ) || '<p>No description</p>' %>
  <%-: ( item.description || 'No description' ) | markdown %>

我还能做什么?

2 个答案:

答案 0 :(得分:1)

不确定您是否可以将||与EJS filters|混合,但您可以add a filter来完成它:

ejs.filters.or = function (arg, sub) {
  return arg || sub;
};
<%-: item.description | or:'No description' | markdown %>

答案 1 :(得分:0)

我想知道你的问题的代码,为什么带有ejs模板表达式的pre-tag是"<%-" not the "<%="(输出或值赋值输出)或"<%=:"(过滤器​​输出)签名?

顺便说一下,过滤器调用签名是单个垂直栏而不是双倍,你可以随意调用你想要的东西......