Handlebars学习(4)- Handlebars路径

1. 简单路径

Handlebars支持简单路径,就像Mustache:

  <p>{{name}}</p>

 

2. 嵌套路径

Handlebars也支持嵌套的路径,使得可以查询嵌套的属性在当前的上下文中。

  <div class="entry">
    <h1>{{title}}</h1>
    <h2>By {{author.name}}</h2>

    <div class="body">
      {{body}}
    </div>
  </div>

模板在下面的上下文中执行:

  var context = {
    title: "My First Blog Post!",
    author: {
      id: 47,
      name: "Yehuda Katz"
    },
    body: "My first post. Wheeeee!"
  };

这使得可以使用Handlebars模板处理更多原生的JSON对象。

 

嵌套的Handlebars路径也可以包含"../",以使得可以使用父级上下文。

  <h1>Comments</h1>

  <div id="comments">
    {{#each comments}}
    <h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
    <div>{{body}}</div>
    {{/each}}
  </div>

即使在一个comment上下文中输出链接,但是仍然可以回到主上下文(the post)中去检索其固定链接。

"../"路径引用父级模板环境。因为块helpers可以调用任何上下文的block,所以,"上一级"的概念并不是特别的有意义,除了作为对父级模板环境的引用。

Handlebars也允许helpers之间的名称冲突,此时数据域通过一个this引用:

<p>{{./name}} or {{this/name}} or {{this.name}}</p>

上面的三种方法都可以在当前的上下文上引用name,而不是同名的helper。

posted @ 2014-12-18 17:20  South Wind  Views(155)  Comments(0)    收藏  举报