mustache.js는 logic-less 템플릿 시스템으로 설계되었으므로 여기 해결책이 이상적이라고 생각하지 않습니다. 그러나 나는 이런 논리를 수시로 콧수염과 함께 퍼지기 때문에 그렇게한다.
템플릿을 렌더링하기 전에 배열의 각 객체에 다른 속성을 추가하거나 복제하여 템플릿 전용 속성을 추가하는 것이 좋습니다.
var myArray = [
{myProp: 1, showTable: false},
{myProp: 2, showTable: true},
{myProp: 3, showTable: false},
{myProp: 4, showTable: true},
{myProp: 5, showTable: false}
];
당신은 할 수 있습니다
var myArray = [
{myProp: 1},
{myProp: 2},
{myProp: 3},
{myProp: 4},
{myProp: 5}
];
for (var i = 0; i < myArray.length; i++) {
myArray[i].showTable = i % 2 === 0;
}
이제에서 myArray 변수는 다음과 같이 좋아한다 : 그래서, 당신이 배열의 다섯 개체가 만 짝수 것들에 대한 테이블을 작성한다고 가정하자 이제 콧수염에있는 "#"연산자를 통해 showTable 속성을 활용하십시오. "#"을 먼저 사용하여 배열을 반복 한 다음 "루프"내부에서 showTable 속성의 진리 값을 확인할 수 있습니다.
Mustache.render($('#MyTemplate').html(), { TableArray: myArray });
을 그리고, 템플릿 자체를 : 첫째, 여기에 호출 TableArray 우리의에서 myArray 변수를 전달 템플릿에서 HTML을 생성하는 Mustache.render에의
<script id="MyTemplate" type="text/template>
{{#TableArray}} <!--Iterates through array-->
{{#showTable}} <!--Only creates HTML inside if showTable property evaluates to true-->
<table>...</table>
{{/showTable}}
{{/TableArray}}
</script>
가 완벽하지,하지만 당신은 렌더링 할 수 모든 것은 그 때 당신이보기 싫은 테이블을 숨긴다? 몇 가지 코드를 게시 할 수 있습니까? –
@DanielShillcock, 테이블을 숨기고 싶지 않습니다. 코드를 사용할 수 없습니다. – JavaUser
도움을 받으려면 코드가 필요합니다! –