🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
这种布局模板不需要在配置文件中设置任何参数,也不需要开启LAYOUT\_ON,直接在模板文件中指定布局模板即可,相关的布局模板调整也在模板中进行。 以前面的输出模板为例,这种方式的入口还是在User/add.html 模板,但是我们可以修改下add模板文件的内容,在头部增加下面的布局标签(记得首先关闭前面的LAYOUT\_ON设置,否则可能出现布局循 环): <layout name="layout" /> <layout name="layout" /> 表示当前模板文件需要使用 layout.html 布局模板文件,而布局模板文件的写法和上面第一种方式是一样的。当渲染 User/add.html 模板文件的时候,如果读取到layout标签,则会把当前模板的解析内容替换到layout布局模板的{CONTENT} 特定字符串。 一个模板文件中只能使用一个布局模板,如果模板文件中没有使用任何layout标签则表示当前模板不使用任何布局。 如果需要使用其他的布局模板,可以改变layout的name属性,例如: <layout name="newlayout" /> <layout name="newlayout" /> 还可以在layout标签里面指定要替换的特定字符串: <layout name="Layout/newlayout" replace="{ REPLACE }" /> <layout name="Layout/newlayout" replace="{ REPLACE }" /> 由于所有include标签引入的文件都支持layout标签,所以,我们可以借助layout标签和include标签相结合的方式实现布局模板的嵌套。例如,上面的例子 <include file="Public:header" /> <div id="main" class="main" > { CONTENT } </div> <include file="Public:footer" /> <include file="Public:header" /> <div id="main" class="main" > { CONTENT } </div> <include file="Public:footer" /> 在引入的header和footer模板文件中也可以添加layout标签,例如header模板文件的开头添加如下标签: <layout name="menu" /> <layout name="menu" /> 这样就实现了在头部模板中引用了menu布局模板。 也可以采用两种布局方式的结合,可以实现更加复杂的模板布局以及嵌套功能。