是否可以在其他ftl中直接使用DefaultScreenMacros.hmlt.ftl中定义的宏?
我在Moqui中创建了一个自定义组件,并且我使用ftls进行模板化,我想使用<@text\-line>
将自动完成字段插入到ftl中,但它似乎不起作用。
我怀疑ftls不会自动包含DefaultScreenMacros.hmlt.ftl,我试图像这样手动包含它:
<#include "classpath://moqui/runtime/template/screen-macro/DefaultScreenMacros.html.ftl"/>
但仍然没有快乐。 有线索吗?
@ddekany 你是对的,我想出来了。这是一个问题,在moqui部分。路径是正确的,但我不确定它是否在类路径上。 无论如何,如果我在flt文件中添加所有宏(或者如果我放置一个本地有效的类路径)那么当我称它们为&lt; @ someMacro&gt;它们会失败,因为这些宏是为了处理xml而不是ftls。 例如这个宏:
<#macro container>
<#assign divId><@nodeId .node/></#assign>
<${.node["@type"]!"div"}<#if divId?has_content> id="${divId}"</#if><#if .node["@style"]?has_content> class="${ec.resource.expand(.node["@style"], "")}"</#if>>
<#recurse>
</${.node["@type"]!"div"}>
</#macro>
将处理xml,如:
<container id="test">
</container>
产生这个:
<div id="test">
</div>
如果我从包含该宏的ftl中调用,请执行以下操作:
<@container id="test">
</@container>
我明白了:
[Template Error: Macro "container" has no parameter with name "id". ---- FTL stack trace ("~" means nesting-related): - Failed at: #macro container [in template ...
有没有办法在不更改tha宏的情况下在ftl中调用它?