2012-02-28 2 views
1

저는 JSON과 콧수염을 처음 접했습니다. 나는 콧수염을 사용하여 만든 배열을 반복하려고하는데 몇 가지 문제가있다. 내 코드는 다음과 같습니다 :이 템플릿을 여러 번 생산의 원하는 영향을 미칠 것콧수염을 사용하여 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

"반복"대신 "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);