2012-02-28 13 views
1

JSONと口髭を初めて使用しました。私はMustacheを使用して作成した配列を繰り返し処理しようとしていますが、いくつかの問題が発生しています。私のコードは次のようになります。これは、あなたのテンプレートを複数回生成する所望の効果を持つことになりますMustacheを使用してJSON配列を反復処理する方法

var shows={"shows":[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]}; 

var template="{{#shows}}{{.}}{{/shows}}"; 

var html=Mustache.render(template,shows); 

document.write(html); 

var shows=[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]; 

var template="{{#shows}}{{.}}{{/shows}}"; 

var html=Mustache.render(template,shows); 

document.write(html); 
+1

*これらの*問題を説明してください。そして、あなたは何を期待していますか? – kapa

+0

"iterate"の代わりに "interate"と書いてあります。それは単なる文字なので、私はそれを編集することはできません。 – hippietrail

答えて

2

あなたは「ショー」は、適切に反復するために、ハッシュになりたいです。ラムダのあなたの質問に

UPDATE

。私はちょうどmanualでこれを見ました。

値は、関数やラムダとして呼び出し可能なオブジェクトである場合には、 オブジェクトが呼び出され、テキストのブロックを渡されます:私はそれはあなたがについて尋ねたものをカバーしていと思います。渡されたテキストは は未定義のリテラルブロックです。 {{tags}}は展開されていません - ラムダはそれを単独で行うべきです。このようにして、フィルタやキャッシングを実装できます。

テンプレート:

{{#wrapped}} 
    {{name}} is awesome. 
{{/wrapped}} 

はハッシュ:

{ 
    "name": "Willy", 
    "wrapped": function() { 
    return function(text) { 
     return "<b>" + render(text) + "</b>" 
    } 
    } 
} 
+0

それは完璧に働いてくれてありがとう! – user1238282

+0

フォローアップの質問。 Mustacheがネイティブに結果をフィルタリングする機能をサポートする方法はありますか?たとえば、カテゴリの値が大人の場所のみを表示したいのですか? – user1238282

1

uは次のように行うことができます。

 
var shows=[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]; 

var template="{{#.}}title:{{title}},video:{{video}}{{/.}}"; 

var html=Mustache.render(template,shows); 

document.write(html); 
関連する問題