关于模板的include和#@function()的疑问

1.png

#include("layout.html")
#@layout()
这样写的话是不是将layout.html页面引入了两次?

#@layout()不就是调用layout.html片段吗?


评论区

JFinal

2017-06-28 21:13

#include("layout.html") 相当于是将 layout.html 中的内容原封不动的拿进来

特别注意一点 layout.html 中的 #define layout() 是函数定义,而不是函数调用,定义与调用有着本质的区别

完全想象成普通程序语言中的方法定义与方法调用就好理解了

还有一个更直接的理解方式:将 layout.html 中的所有内容 copy 过来,放在原来 #include("layout.html") 的位置,删掉原来的 #include("layout.html") 这一行代码

david__

2017-06-29 10:59

@JFinal 其中#@layout()是不是将定义为layout()的模板拿进来

JFinal

2017-06-29 11:38

@david__ #@layout() 是调用模板函数,一定要理解为将定义为 #define layout() 的模板拿进来也可以

总结一下:
1:定义
#define funcName()
body
#end

2:调用
#@funcName()

david__

2017-06-29 14:25

热门反馈

扫码入社