Express EJS中的空白控制

Express EJS中的空白控制,express,ejs,Express,Ejs,我有一个条件来检查用户是否未登录,然后向td元素添加一个类。 EJS如下所示: <td class="<%_ if (!currentUser) { _%> notSigned" <%_ } _%>"> 监视数据库 班上有所有领先的whiespace,括号在下一行结束。我是EJS新手,控制空白的最好方法是什么 我的EJS经验非常有限,但我确实有一个想法,我觉得很有趣,可以分享 如

我有一个条件来检查用户是否未登录,然后向td元素添加一个类。 EJS如下所示:

        <td class="<%_ if (!currentUser) { _%>
                notSigned"
            <%_   } _%>">

监视数据库

班上有所有领先的whiespace,括号在下一行结束。我是EJS新手,控制空白的最好方法是什么

我的EJS经验非常有限,但我确实有一个想法,我觉得很有趣,可以分享

如果向应用程序中添加函数,则可以在模板中访问这些函数:

app.locals.$if = function(condition, output) {
    return condition ? output : '';
};

app.locals.$unless = function(condition, output) {
    return condition ? '' : output;
};
名称
$if
$except
是任意的,但希望它们能很好地证明这个想法

然后,您可以在自己的视图中编写类似的内容:

<td class="<%=
    $unless(currentUser, 'notSigned')
%>">


我不知道你是否觉得这比你已经提到的备选方案更容易阅读,但我认为它读起来相当不错。

我的EJS经验非常有限,但我确实有一个想法,我认为非常有趣,可以与大家分享

如果向应用程序中添加函数,则可以在模板中访问这些函数:

app.locals.$if = function(condition, output) {
    return condition ? output : '';
};

app.locals.$unless = function(condition, output) {
    return condition ? '' : output;
};
名称
$if
$except
是任意的,但希望它们能很好地证明这个想法

然后,您可以在自己的视图中编写类似的内容:

<td class="<%=
    $unless(currentUser, 'notSigned')
%>">


我不知道你是否觉得它比你已经提到的其他方法更容易阅读,但我认为它读起来相当不错。

使用像
currentUser这样的三元运算符怎么样?“”:'没有在一行中签名“
?是的,我实际上在许多模板中都是这样做的,在一行中编写if语句也是这样:
我希望有一些方法可以控制多行EJB的空白,因为它更容易阅读。这并不能完全解决这个问题,但是
app.set('view options',{rmWhitespace:true})将删除大量空间。我认为这更像是一个缩小的过程,因此它不一定能使读取生成的HTML变得更容易。使用三元运算符(如
currentUser?“”:’)怎么样没有在一行中签名“
?是的,我实际上在许多模板中都是这样做的,在一行中编写if语句也是这样:
我希望有一些方法可以控制多行EJB的空白,因为它更容易阅读。这并不能完全解决这个问题,但是
app.set('view options',{rmWhitespace:true})将删除大量空间。我认为这更像是一个缩小的过程,所以它不一定能让阅读生成的HTML变得更容易。