2017-04-20 3 views
0

私はカテゴリノード(オブジェクトの配列)を持っています。 productフィールドが存在する場合は1つのリスト項目を印刷し、categoryフィールドが存在する場合は別のリスト項目を印刷したいと考えています。口ひげ - 同じ名前を使用してネストされたセクションに条件付きです

category.nodes = [ 
    { 
    product: "1", 
    type: "product" 
    }, 
    { 
    product: "2", 
    type: "product" 
    }, 
    { 
    category: "categoryName", 
    type: "category" 
    }  
] 

私の口ひげテンプレートは次のとおりです。

<p> 
    {{#category.nodes}} 
     {{#product}} 
     <li>{{product}}</li>        
     {{/product}} 
     {{#category}} 
     <li>{{category}}</li> 
     {{/category}} 
    {{/category.nodes}} 
</p> 

{{#category.nodes}} ... {{/category.nodes}}category.nodes sectionにスコープを入れて、セクション

「に応じて、テキスト1回以上のブロックをレンダリングする必要があります現在のコンテキストにおけるキーの値 "

文書はfalse values and empty listsに、次の状態:

「人のキーが存在し、または存在し、ヌル、未定義、偽、0、またはNaNの値を持っている、または空の文字列または空であるしていない場合リスト、ブロックがレンダリングされることはありません」

This jsFiddleは、ネストされた値が親の値と同じである問題を示します(category.nodes.category、{{#category}}...{{/category}}はグローバルcategoryを意味しないが。)

I何かがあるかどうか疑問に思っていたどのようなcategoryが参照されているかを指定します。これはネストの問題を引き起こすためです。

This jsfiddleは、親の名前を変更して問題を解決する方法ですが、変数の名前を変更するのではなく、categoryを参照する方法があるかどうかは疑問です。

セクションにcategoryがない場合、問題は{{#category}}...{{/category}}の印刷です。

+0

githubのバグは – moondaisy

+0

(これに続く人物)のように見えるので、私は[issue](https://github.com/janl/mustache.js/issues/629)を開いています。投稿者からの返信があったら更新する=) – Hodrobond

答えて

1

この動作は、the specificationと一致します。

キーまたは指定された名前

と方法 応答b)のオブジェクトとして名前を含むa)のハッシュである第一のコンテキスト を見つける、上から下へコンテキストスタックをウォーク

のメンバー内で{{#category}}が一致しない場合、スタックを歩き、根元(この用語ではスタックの最下部にあります)にcategoryが見つかります。仕様の私の読解から、データ要素のレベルを識別する方法はありません。

関連する問題