2016-06-02 4 views
0

, 내가이 렌더링하려고하면오류 사용하여 핸들 템플릿 내가 우는 소리 같은 핸들 템플릿을

<script id="pins-list-template" type="text/x-handlebars-template"> 
     {{#if ListCount > 0}} 
     <ul> 
      {{#each ListData}} 
      <li> 
       <img src="assets/3dimage.png" data-src="{{thumbURL}}"/> 
      </li> 
      {{/each}} 
     </ul> 
    {{else}} 
     Empty Result 
    {{/if}} 
    </script> 

, 나는이 오류를 얻고는,

Error: Parse error on line 3: {{#if ListCount > 0}} { ----------------^ Expecting 'CLOSE', 'CLOSE_UNESCAPED', 'STRING', 'INTEGER', 'BOOLEAN', 'OPEN_SEXPR', 'CLOSE_SEXPR', 'ID', 'EQUALS', 'DATA', 'SEP', got 'INVALID'

답변

1

주요 사항 Array.length를 사용해보십시오 대신> 0을 사용하려면> 0

{{#if ListData.length}} 
    <ul> 
    {{#each ListData}} 
     <li> 
      <img src="assets/3dimage.png" data-src="{{thumbURL}}"/> 
     </li> 
    {{/each}} 
    </ul> 
{{else}} 
    Empty Result 
{{/if}} 

의 경우 (예 : IS-이상)

도우미를 작성해야

Nb! Javascript는 CamelCase 명명 규칙을 적용하고 클래스 만 대문자로 표기합니다.

+0

자바 스크립트가 명명 규칙 WatheverCase를 사용을 사용해야하지만, 그래 클래스 바르 및 PascalCase에 대한 낙타 표기법을 사용하는 것이 바람직,하지만 당신은 당신이 무엇을 할 수 : 그에게 봐 JS에서 원한다. –

0

시도 자바 스크립트의 기능을 평가 한 다음 컨텍스트에 결과를 전달 :

context.ListHasData = (context.ListCount > 0); 

YourHandleBarsTemplate(context); 
0

는 그 검색 및 해결책을 발견했다. http://jsfiddle.net/a9wjbsch/520/ 당신이 핸들 도우미 :

Handlebars.registerHelper('compare', function (lvalue, rvalue, options) { 

if (arguments.length < 3) 
    throw new Error("Handlerbars Helper 'compare' needs 2 parameters"); 

var operator = options.hash.operator || "=="; 

var operators = { 
    '==': function (l, r) { return l == r; }, 
    '===': function (l, r) { return l === r; }, 
    '!=': function (l, r) { return l != r; }, 
    '<': function (l, r) { return l < r; }, 
    '>': function (l, r) { return l > r; }, 
    '<=': function (l, r) { return l <= r; }, 
    '>=': function (l, r) { return l >= r; }, 
    'typeof': function (l, r) { return typeof l == r; } 
} 

if (!operators[operator]) 
    throw new Error("Handlerbars Helper 'compare' doesn't know the operator " + operator); 

var result = operators[operator](lvalue, rvalue); 

if (result) { 
    return options.fn(this); 
} else { 
    return options.inverse(this); 
}