2012-08-09 7 views
7

가능한 중복 : 나는 Mustache.js로 사용하려는이 같은 JSON 응답을
Mustache JS Template with JSON CollectionMustache.js : JSON을 통해 수신 목록을 통해 반복

:

[ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
] 

어떻게하면 mustache.js를 사용하여 반복 할 수 있습니까?

배열 자체가 더 큰 객체에 값을 수과 같이한다
+0

복제본이 어떻게 보이지 않습니다. 링크 된 질문의 제목은 설명 적이 지 않으며 수용된 대답도 없습니다. – Stealth

+0

재미있는 점은이 "duplicate of"라는 게시물이이 질문을 참조한다는 것입니다. – Carcigenicate

답변

12

나는 당신이 자바 스크립트 객체에 배열을 할당 할 필요가 없다는 점을 제외하고 거트 얀 꽤 유사하다이 일을 다른 방법을 발견했다.

{{ #. }} 
    <p> {{ id }} </p> 
    <ul> {{#details}} 
     {{name }} 
     {{ type }} 
    {{/details}} 
    </ul> 
{{ /. }} 
+0

실제로. 도트가 최상위 오브젝트에서도 작동하는지 몰랐습니다. –

+0

나는 이것을 할 수있어 나는 이것을 사용할 수 없다. 내가 빠진 것이 있습니까? – streetlight

+0

나는 이것을 작동시킬 수 없다 (나는 Can Haz를 사용하고있다). 이것이 굉장 할 것이기 때문에 제가 놓친 것이 있습니까? – streetlight

14

: 다음

var obj = { 
    arr: [ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
    ] 
} 

당신이 할 수 있습니다

{{#arr}} 
    my id: {{id}} 
{{/arr}} 

{{#bla가}} 실제로 오버로드에 대한 사용 . 그것이 작동하는 속성이 배열 일 때 루프됩니다. 속성이 객체 자체 일 때 해당 객체를 '입력'합니다. 귀하의 예를 감안할 때 :

{{#arr}} 
    my id: {{id}} <br/> 
    {{#details}} 
    and my name: {{name}} 
    {{/details}} 
{{/arr}} 
+2

답변 해 주셔서 감사합니다. 나는 또한 당신이 쉽게 찾을 수있는 또 다른 방법을 발견했다. 아래를 봐주세요. – Stealth

+0

@ Geert-Jan 덕분에 도움이되었습니다. _arrayOfJsons_라는 _arrayOfJsons_라는 이름의 객체 배열이 _classObject_ 클래스 내에 있어야하므로 다음과 같이 처리해야했습니다 : $ ('. some #selector') append (Mustache.render (someTemplateTpl, {arrayOfObjects : classObject.arrayOfJsons})); object 안의 _arrayOfObjects_ property의 값으로 지정 될 수있다. 하지만 이전에이 코드를 사용했을 때 : $ ('some some selector') append (someTemplateTpl, classObject.arrayOfJsons); ' 템플릿이 부분적으로 렌더링되었습니다. 정적 인 HTML 부분 만 있지만 Json의 속성 (if-else like 문)에 기반한 동적 인 부분은 그렇지 않습니다. 왜? – spaffy