新语法需求
list.xtpl,某一个列表模块作为一个独立模板
{{#each(list)}}
<a href="{{url}}">{{title}}</a><br>
{{/each}}
page.xtpl, 在页面中引用刚刚的模块
{{set (array = [{
"url": "",
"title": ""
}])}}
{{ includeSection ("list.xtpl", array) }}
希望能增加上面类似includeSection
的功能。
vs macro与include
- macro必须要有函数名以及参数,但实际使用时我们往往希望是一个文件即为一个模块,可直接引用文件;
- 相对于include, "includeSection"可以传递数据到目标模块,并在内部完成渲染。include返回的是xtpl, "includeSection"返回的是html.
"includeSection"使用起来比macro更加简单方便。
举个例子,调用一个模块:
使用macro
{{#macro("list", "array")}}
{{#each(array)}}
<a href="{{url}}">{{title}}</a><br>
{{/each}}
{{/macro}}
{{include ("../shared/list")}}
{{macro("list", array)}}
使用"includeSection"
{{#each(array)}}
<a href="{{url}}">{{title}}</a><br>
{{/each}}
{{includeSection ("../shared/list", array)}}