2012-01-04 14 views
6

私はタグが内部にあるタグのリストからツリーを作成しようとしています。口ひげ+ネストされたオブジェクト

ここで私が使用しているJSONのサンプルです:

{ 
    "tags": 
    [{"name":"My first tag", 
    "tags": 
    [{"name":"My first tag inside a tag"}, 
    {"name":"My second tag inside a tag"}] 
    }] 
} 

を、私は、次の口ひげテンプレートを使用している場合、それは何の問題もなく、「私の最初のタグを」表示します

<ul> 
{{#tags}} 
<li tag-id="{{id}}"> 
    {{name}} 
</li> 
{{/tags}} 
</ul> 

しかし、その後、次のテンプレートを使用して、この最初のタグ内にタグを表示しようとしています:

<ul> 
{{#tags}} 
<li tag-id="{{id}}"> 
    {{name}} 
    <div> 
    {{#tags}} 
    <a>{{name}}</a> 
    {{/tags}} 
    </div> 
</li> 
{{/tags}} 
</ul> 

このテンプレートは、Mustacheは何もレンダリングしません。

Mustacheを使用してネストされたリストを表示するにはどうすればよいですか?その問題を解決するために

答えて

7

、私が行います。

<div id="result-tag"></div> 
<script language="javascript" type="text/javascript"> 
    function test(){ 
    var view = { 
    "tags": 
    [{"name":"My first tag", 
     "tags": 
     [{"name":"My first tag inside a tag"}, 
     {"name":"My second tag inside a tag"}] 
    }] 
    }; 

    var templt = '<ul>{{#tags}}<li>{{name}}<div>{{>subtags}}</div></li>{{/tags}}</ul>'; 
    var partials = {"subtags": "{{#tags}}<a>{{name}}</a><br/>{{/tags}}"}; 
    var html = Mustache.to_html(templt, view, partials); 
    document.getElementById('result-tag').innerHTML=html; 
} 
window.onload = test; 
</script> 

を、私はそれは私が今日それを試してみましょう

+0

、私はあなたに戻って取得します役に立てば幸い!ありがとう。 –

+0

素晴らしい作品! $( '#my-template')を使用していたため実際に問題が発生しましたが、 ">"を ">"に置き換え、replace( '>'、 '>') –

関連する問題