考虑以下简化数据:
var viewData = { itemSize: 20, items: [ 'Zimbabwe', 'dog', 'falafel' ] };
还有一个车把模板:
{{#each items}} <div style="font-size:{{itemSize}}px">{{this}}</div> {{/each}}
这是行不通的,因为在each循环中,父作用域是不可访问的-至少不能以我尝试过的任何方式。我希望有办法做到这一点!
each
有两种有效的方法可以实现此目的。
../
通过../在属性名称前添加前缀,可以引用父作用域。
{{#each items}} <div style="font-size:{{../itemSize}}px">{{this}}</div> {{#if this.items.someKey}} <div style="font-size:{{../../itemSize}}px">{{this}}</div> {{/if}} {{/each}}
您可以通过重复来提高多个级别../。例如,要上两个级别,请使用../../key。
../../key
@root
通过添加@root到属性路径,您可以从最高范围向下导航(如caballerog的答案)所示)。