高级玩家:partial
比较推崇使用分页来实现组件化。分页跟helper一样需要先注册。在hbs模块中可以批量注册,比较简单。
hbs.registerPartials(__dirname + '/views/partials');
基础引用
用“>”来引用模板,这种情况一般用来处理页头页尾这种简单的分页。后面可以传入参数。 { {> myPartial param} }
当使用块级表达式时,我们通常添加“#”,而分页是“>”,所以块级分页使用“#>”,这里表示如果layout分页不存在则显示块内的内容My Content。
{ {#> layout } }
My Content
{ {/layout} }
动态分页
当然也可以用表达式来代替分页名称
{ {> (whichPartial) } }
当分页中一部分代码是固定的,另一部分是变化的时候,可以在分页中添加“@partial-block”,这时当引用这个分页时,在内部编写代码将会填充到这个位置。
partial.hbs:
亚里士朱德
{ {> [@partial-block](/user/partial-block) } }
模板:
{ {#>partial} }
https:yalishizhude.github.io
{ {/partial} }
html页面:
亚里士朱德
https:yalishizhude.github.io
内联分页
当有多段代码需要填充到分页时,可以用如下方法。分页中内嵌分页变量,模板中通过内联分页的方式传入。
模板:
{ {#> partial} }
{ {#*inline "nav"} }
亚里士朱德
{ {/inline} }
{ {#*inline "content"} }
https://yalishizhude.github.io
{ {/inline} }
{ {/partial} }
partial.hbs:
<div class="nav">
{ {> nav} }
</div>
<div class="content">
{ {> content} }
</div>
html页面:
<div class="nav">
亚里士朱德
</div>
<div class="content">
https://yalishizhude.github.io
</div>