Perl代码
将菜单项作为包含链接哈希的perl数组传递
my $bet_details_menu_items = [
{
link => 'link 1',
text => 'First',
is_internal => 1
},
{
link => 'link 2'
text => 'Second',
params => { param_name1 => param_value1, param_name2 => param_value2 },
}
];
模板工具包代码
使用模板工具包为每个
访问链接<ul>
[% FOREACH item IN menu_items %]
<li>
[% IF item.is_internal%]
<a href="#[% item.link %]">[% item.text %]</a>
[% ELSE %]
<a href="[% item.link %]">[% item.text %]</a>
[% END %]
</li>
[% END %]
</ul>
我尝试了什么
我尝试将所有参数分配给具有键和值的变量,然后将其分配给相应的链接
[% all_params = '' %]
[% FOREACH param IN params.keys %]
[% $all_params = $all_params _ param _ '=' _ params.$param %]
[% END %]
[% IF item.is_internal %]
<a href="#[% item.link %]" [% $all_params %] >[% item.text %]</a>
[% ELSE %]
<a href="[% item.link %]" [% $all_params %]>[% item.text %]</a>
[% END %]
问题
只有在打印href并打印链接文本时,参数才会进入链接
预期结果
<a href='link 1' // working fine
param_name1=param_value1 param_name2 param_name2=param_value2 // not working as of now
> link_text //working_fine </a>
答案 0 :(得分:1)
我会再次尝试,你可以实现这样的目标。
<a [% FOREACH item IN $all_params %] [% item.key %] = [% item.value %][% END %] href="#"></a>
因为在模板中,如果直接使用哈希,它会将其识别为模板中的哈希引用。它无法使用key=value