사용자 도구

사이트 도구


handlebars:handlebars_java

Handlebars.java

SafeString

Handlebars는 헬퍼가 리턴한 값을 기본적으로 HTML Escape하지만, 헬퍼가 return할 때 이를 SafeString객체로 감싸서 리턴하면 HTML Escape을 하지 않는다. 물론, 해당 Escape에 대한 보안 책임은 헬퍼를 만든 프로그래머가 져야한다.

handlebars.registerHelper("blog-list", new Helper<List<Blog>>() {
  public CharSequence apply(List<Blog> list, Options options) {
    String ret = "<ul>";
    for (Blog blog: list) {
      ret += "<li>" + options.fn(blog) + "</li>";
    }
    return new Handlebars.SafeString(ret + "</ul>");
  }
});

Handlebar javscript precompile

Options

  • com.github.jknack.handlebars.Optionsfn 객체에서 현재 템플릿 위치에 대한 정보를 얻을 수 있다.
  • options.fn.text() : helper 문자열 자체
  • options.fn.filename() : 템플릿 파일
  • options.fn.position()[0] : 현재 호출 위치 line number.
  • options.fn.position()[1] : 현재 호출 위치 column number.

중첩 블럭(nested block)에서 상위 컨텍스트 참조

{{#each}} 같은 블럭 컨텍스트는 인자로 받은 객체를 새로운 컨텍스트로 만드는데, {{#each}}가 중첩해서 나오고, 상위 컨텍스트와 하위 컨텍스트에 동일 프라퍼티가 있을 경우 상위 컨텍스트 프라퍼티 접근이 어려울 수 있다.

이때는 ../propertyName 를 사용하면 상위 컨텍스트 프라퍼티에 접근 가능하다.

Handlebars 3.x 부터는 block 의 컨텍스트에 명시적으로 이름 지정이 가능해져서 상위 컨텍스트와의 이름 충돌 회피가 더 쉬워졌다.

Array/List by index

  • index에 숫자 대입
    {{people.[index]}}

each with index / key

handlebars/handlebars_java.txt · 마지막으로 수정됨: 2017/06/19 12:10 저자 kwon37xi