之前我没有使用过Freemarker,并继承了一些无法编译的模板。我已经缩小了造成问题的路线:
FreeMarker template error:
For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (wrapper: f.t.SimpleHash):
这个text()函数来自哪里?我理解它试图将第二个字符串注入到第一个字符串中:“Text and More Text”。
这是错误:
text buffer
modernizr-2.6.2.js是唯一导入的javascript。
为什么这一行导致问题以及应该声明此函数的任何想法?
答案 0 :(得分:0)
它可能来自几个地方:
从数据模型(您传递给Template.process
的其中一个参数)
从共享变量中添加到Configuration
单例。
从#include
- d模板(或您所在的模板),#function text
或#assign text = ...
(或#global text = ...
)
从#import
- ed模板通过#global text = ...
(极不可能......)
但是一个可能有趣的事情是错误说text
确实存在,但它是一个哈希(一个Map
- 类似的东西),而不是一个可调用的东西。也许某些被称为text
的东西会影响好text
? ${.data_model.text('Text and {0}', 'More Text')}
说什么?
你提到了一个JavaScript文件。 FreeMarker与JavaScript无关(它在服务器上运行,在JVM内部。)