2017-09-12 8 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''を1行に入れますか? –

+0

はい、それは実際には多くのテンプレートでそれをやっていますので、次のようにif文を1行に書くのですか? ' ' 複数行のejのための空白を制御する方法があるといいと思いますが、読みやすくなっています。 – 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') 
%>"> 

私はあなたが簡単にあなたがすでに述べてきたが、私はそれが非常によく読み込んだと思うの選択肢よりも読みすることを見つけるかどうかわかりません。

関連する問題