2016-06-20 5 views
0

Handlebars.java에서 평등과 기타 논리 조건을 비교하려면 어떻게해야합니까? 예를 들어 : 또는 registerHelper()없이Handlebar.java : #if 헬퍼의 동등 비교

{{#if template_version == "v2" }} 
    //do something 
{{ else }} 
    //do something 
{{/if}} 

솔루션을 환영합니다.

답변

1

== 체크를 수행하는 도우미를 작성해야합니다. 즉, == 구성품을 제공하지 않으면 핸들러가 제공되지 않습니다.

Handlebars.registerHelper('if_eq', function(a, b, opts) { 

     if(a == b) // Or === depending on your needs 
      return opts.fn(this); 
     else 
      return opts.inverse(this); 
    }); 

당신은 도우미에게 어떤 이름을 부여 할 수 있습니다

는이 같은 간단한 도우미를 작성할 수 있습니다. 나는 if_eq를 주었다.

지금, 당신의 템플릿 :

{{#if_eq template_version "v2" }} 
    //do something 
{{ else }} 
    //do something 
{{/if_eq}} 

넣다 당신은 거기에 모든 사업자 헬퍼, 아래처럼 뭔가를 할 수 원하는 : 당신의 응답을

Handlebars.registerHelper({ 
     eq: function (v1, v2) {  
      return v1 === v2; 
     }, 
     ne: function (v1, v2) { 
      return v1 !== v2; 
     }, 
     lt: function (v1, v2) { 
      return v1 < v2; 
     }, 
     gt: function (v1, v2) { 
      return v1 > v2; 
     }, 
     lte: function (v1, v2) { 
      return v1 <= v2; 
     }, 
     gte: function (v1, v2) { 
      return v1 >= v2; 
     }, 
     and: function (v1, v2) { 
      return v1 && v2; 
     }, 
     or: function (v1, v2, opts) { 
      return v1||v2; 
     } 
    }); 
+0

감사합니다, ... 하지만 자바에서 대답을 찾고 있었다. Handlebar.java에 완벽한 도우미를 제안 해주십시오. –

+0

자, 우리는 Js Handlebar Helpers를 JAVA에서 사용할 수 있습니다. handlebars.registerHelpers (new File ("helpers.js")); 그것은 작동합니다. 그러나 나는 그것이 생산에 어떻게 영향을 미칠지 전혀 모른다. –