Handlebars 4
图文……好像有关。
Handlebars自从升到2.0之后,就放开了,版本号蹭蹭涨,如今已经升到4.0版。
这个版本最显著的变化在于层级结构,以往的版本中,所有的Block Helper都可以形成一个层级。对于{{#each}}、{{#with}}这种还好说,层级关系比较明确,很好理解;但是{{#if}},也有可能形成一个层级,这就很奇怪了。尤其像我前文所述,它只是可能形成一个层级,就更诡异了。
所以这个修改其实是件好事儿。
接下来,代码时间。
Before
{{#each list}}
{{#if is_true}}
<p>这里需要向上两层才能找到值。{{../../value}}注意,这里是两层。</p>
{{/if}}
{{/each}}
var data = {
list: [
// items..
],
value: 'value'
}
, template = Handlebars.compile(hbs);
template(data);
After
{{#each list}}
{{#if is_true}}
<p>这里需要向上两层才能找到值。{{../value}}那,这里只有一层了</p>
{{/if}}
{{/each}}
JavaScript是一样的。
总结
为了写这篇文章又去看了一遍Handlebars的文档,发现新增了不少特性,尤其开始支持子表达式,看来有必要再好好看一遍。
相关文章
在 Pug 模板中使用变量
如何在 Pug 里,把变量注入父模板。
2018-09-292 分钟
Gulp 中顺序执行任务
Gulp 顺序执行支持3中模式:callback、返回 stream、返回 Promise 对象。
2016-03-054 分钟
Template was precompiled with an older version of Handlebars
使用本地高版本 Handlebars 替换 gulp-handlebars 里的底版本依赖是个好主意。
2016-03-202 分钟


