2013-01-03 5 views
58

ジェイドテンプレートでインラインで行う方法はありますか?ジェイド条件付き(if/else)インラインdivにクラスを追加する

if(typeof fromEdit != 'undefined') 
    div#demo.collapse.in 
else 
    div#demo.collapse 

はこの条件チェック「インライン」をしたいと思っ及びfromEditが存在する場合、結果はdiv要素の最後に.INを追加します。

+0

私はこの=(selectNav == 'をMyProfile' '(クラス&& 'が選択')、HREFを使用= '...') ' –

答えて

91

これは動作します:

div#demo.collapse(class=typeof fromEdit === "undefined" ? "" : "in") 

hereそれを試してみてください。

+0

それは確かにあります!ありがとう! – jstevens13

+2

しかし、条件がfalseの場合、要素に 'class'属性を持たせたくない場合もあります。 – vsync

+0

はうまくいきました。 – yussan

74

値がないときにクラス属性を追加したくない場合は、空の文字列の代わりにundefinedを割り当てることができます。ここで少し変更し、前の例である:

div#demo.collapse(class=typeof fromEdit === "undefined" ? undefined : "in") 

更新:あなたはpugを使用している場合も、あなたは異なる条件としたいとあなたが今のように多くのclass=宣言を追加することができ、彼らは結果のクラスに連結を得ますよ属性。例えば:

#demo.collapse(class=cond1 && 'class1' class=cond2 && 'class2') 
+6

+1、IMOこれは受け入れられた回答でなければなりません – Darkhogg

+1

非常に良い答え(+1) – Tom

+0

ありがとう!正確に私が探していたもの。 –

5

http://jade-lang.com/reference/attributes/で文書化されたよう:

クラス属性は、[...]それはまた、条件クラスを適用するために有用である真または偽の値にオブジェクトマッピングクラス名、することができ

タスクは、以下で行うことができます。

div#demo.collapse(class={ in: typeof fromEdit != 'undefined' }) 

ここでは動作しませんがhttp://naltatis.github.com/jade-syntax-docs/(私は何かを更新する必要があると思いますが)[email protected]で動作します。パグが組み込まオブジェクトの有無検出が含まれているため、古い質問ものの

+0

これは、今すぐjade/pugに行く方法です。オブジェクトに別のキーを追加して、複数の条件付きクラスを使用できます。 – webdif

2

、私は次のように動作することを見つける:

div#demo.collapse(class=fromEdit? 'in':undefined) 

それは明白でなければ、fromEditが存在し、それがない場合は、クラスとしてinを入力した場合、これはチェックそれ以外の場合は、クラスを空白のままにします。

この構文を使用することができパグ2で
関連する問題