解释下标题的意思
使用#define xxx()定义的模板函数不仅可以在父模板中调用,也可以在父模板外的模板调用(全局调用)
使用场景
拿JFinal文档中“6.4.7 模板函数调用”来说
layout()模板函数中调用了#@main()、#@js?(),该模板文件定为A,另一个模板文件B在使用模板A中的layout()时并未定义js(),而在模板B的子模板C中定义了js(),此时希望模板C中申明的模板函数js(),可以被模板A调用到,使该js在所有公共js加载完成后执行
实现方式
可以考虑添加关键字,如#define global xxx(),针对global 模板函数作用域为全局
如果增加了全局函数,需要考虑重复定义的问题,如多个子模板都定义了js(),上面场景中希望全部都可以调用,而不是覆盖,可能后续有其他场景仅需要一个生效