2017-09-12 101 views
0

我有一個條件來檢查用戶是否未登錄,然後將類添加到td元素。 的EJS是這樣的:控制EJS中的空格

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

渲染HTML:

   <td class="      notSigned" 
"> 
        Monitor the database 
        <div class="ui accordion"> 

有所有類上的領先whiespace和支架下一行關閉。我是EJS新手,控制空白的最佳方法是什麼?

+0

如何使用像'currentUser這樣的三元運算符? '':'notSigned''在一行中? –

+0

是的,我實際上在很多模板中都這樣做,所以if語句寫在一行中也是這樣的: ' notSigned <%_ } _%>」> ' 我希望有一些方法可以控制多線ejs的空白,因爲它更易於閱讀。 – Canolyb1

+1

它並不完全解決它,但'app.set('view options',{rmWhitespace:true});'將修剪掉很多空間。我認爲這樣做更像是一個縮小過程,所以它不一定能讓閱讀生成的HTML變得更容易。 – skirtle

回答

0

我的EJS體驗相當有限,但我的確有一個想法,我認爲這足以讓人分享。

如果函數添加到應用程序的當地人,他們是在模板中訪問:

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

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

名稱$if$unless是任意的,但希望他們好到足以驗證這個想法。

你可以接着寫這樣的事情在你看來:

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

我不知道你是否發現,更容易比你已經提到的替代閱讀,但我認爲它讀得很好。