2016-03-21 7 views
0

機能しない場合、私はNode.jsのデモを作成し、次のコードのように、ヒスイのテンプレートを使用しよう:Node.jsのヒスイ文が

if name == 'a' 
    block header 
    h4 statement1 
else 
    block header 
    h4 statement2 

「name」がに渡されるパラメータであり、テンプレートとテンプレートファイルは他のテンプレートを拡張するので、私はブロック 'ヘッダ'に何かを表示しようとします。
しかし、 'name'が定義されていなくても、常にstatement1の内容を表示することがわかります。
名前の値が正しく渡されたかどうかテストしました。そのため、if文が自分のコードで動作しないようです。どうすればこの仕事を適切に手に入れることができますか?

答えて

0

statement1が見える場合は、if条件が機能していることを意味します。ブロックヘッダーが適切に拡張されているかどうかを確認することをお勧めします。あなたが合法的にやっていることを分かち合うことができるかもしれません。

0

代わりにこのようにしてみてください。それは動作するはずです:

block header 
    if name == 'a' 
     h4 statement1 
    else 
     h4 statement2 

私はそれがジェイドは、それが条件文を解決する前に拡張し解決するという事実とは何かを持って理解して何から。あなたはこのように行う場合:

if true 
    append header 
     h4 hello 
else 
    append header 
     h4 world 

ジェイドは、if文は明らかに真であるため、それは不可能であるべきにもかかわらず、「こんにちは」の両方付加し、「世界」。これはさらに、条件付きで拡張を適切に処理する方法を評価していないことを示しています。

+0

ありがとう、あなたのソリューションは動作します。しかし、これは、if文がいくつかのブロックで何かをする必要があるとき、同じif文を使うのではなく、それぞれのif文を書くべきであるということです。 –

+0

さて、はい。あなたのコードがどのように構造化されているかに依存します。しかし、あなたはあなたの条件式をあなたの拡張の内側に置く必要があり、それは2つのブロックがifステートメントを共有するのを難しくします。 – tomtom

関連する問題