0
Imは、以下しようとして含みを持つテンプレート取得:いくつかのファイルでcustom_item.ftlFreemarkerの:(接頭辞)
<root>
<name>${name}</name>
</root>
MainTemplate.ftl
<root>
<#List items as item>
<#include "custom_item.ftl"> [Option 1]
</#List>
<#include "custom_item.ftl"> [Option 2]
</root>
をincludeは[Option 1]、他は[Option 2]のようになります。
- Option 1: ${item.name}
- Option 2: ${name}
完全に理解するだけでなく、私の問題:$ {名前}私は2種類の方法を使用する必要が変数にアクセスするには 。どうすればそれが常に機能するか確認できますか?インクルードに接頭辞を指定すると、常に同じになります。その後、いつもうまくいく
MainTemplate.ftl
<root>
<#List items as item>
<#include "custom_item.ftl" prefix='item'> [Option 1]
</#List>
<#include "custom_item.ftl"> [Option 2]
</root>
custom_item.ftl
<root>
<# assign prefix = prefix?root>
<name>${prefix.name}</name>
</root>
:のようなたとえば
。私のアプローチは明らかにうまくいきません。誰かが解決策を持っていますか?
編集:回答
MainTemplate.ftl
<root>
<#List listItems as listItem>
<#assign item = listItem>
<#include "custom_item.ftl">
</#List>
<#assign item = .data_model>
<#include "custom_item.ftl">
</root>
custom_item.ftl
<root>
<name>${item.name}</name>
</root>