2015-02-06 1 views
0

Mustache에는 현재 범위 만 표시 할 수 있습니까?콧수염을 현재 범위로 제한 할 수 있습니까?

{ 
    "name": "name1", 
    "list": [ 
    { 
     "name": "name2", 
     "value": 200 
    }, 
    { 
     "value": 300 
    } 
    ] 
} 

출력 :

  • NAME2 200
  • NAME1 300

가 상위 범위를 탐색하기 때문이다.
는하지만 내가 필요로하는 것은 :

  • NAME2 : 200
  • 300

이 같은 네임 스페이스 충돌을 피할 수있는 방법이 있나요?
이름이 비어 있어야하는 객체에 "name": ""을 설정하고 싶지 않습니다. 동적으로 만들어지기 때문입니다.

+0

"{{[name]}}"과 같이 "[]"로 검색 범위를 현재 범위로 제한하고 싶습니다. –

답변

1

현재 스펙 준수 콧수염에서 찾고있는 것을 할 방법이 없습니다. 즉 그러나, 그것은 불가능 의미하지 않는다 :) 그것을 할

몇 가지 방법 :

  • a proposed spec extension있다 - 때로는 소위 "고정 점 표기법을"- 당신이 {{ .name }}을 쓸 수 것이라고 ... 그것은 기본적이다 현재 섹션 컨텍스트를 참조하는 암시 적 반복기 {{ . }}과 도트 표기법 {{ foo.name }}의 조합 많은 Mustache 구현에 추가되지 않았기 때문에, 이것은 당신의 취향에 따라 당신을 위해 작동하지 않을 수도 있습니다.

  • Mustache 라이브러리가 the proposed filters specs 중 하나를 구현하는 경우이를 사용하여 상위 섹션 컨텍스트를 검사하지 못하게 할 수 있습니다. 이 답변의 실행 가능성은 귀하의 언어에 따라 다릅니다. Ruby에서는 #method_missing을 구현하는 프록시를 사용하여이를 수행 할 수 있습니다. PHP에서는 __isset__get ... Here's an example of that in PHP과 같은 작업을 수행 할 수 있습니다.

  • 하지만 실제로 가장 간단한 대답은 자식 개체에 항상 name 속성을 지정하는 것입니다. name이 있고 빈 문자열 인 경우 상위 컨텍스트는 확인되지 않습니다.

관련 문제