2014-01-07 3 views
1

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 }, 
    }              
]; 

Template Toolkit код

Доступ ссылки с использованием шаблоном инструментария для каждый

<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> 

То, что я пытался

Я попытался назначить все Params к переменной с ключом и значением как и затем присвоив его соответствующей ссылке

[% 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 %] 

Проблема

В PARAMS не поступают в ссылку только 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

Как насчет других элементов на вашей странице, могут ли они отображаться правильно? У меня есть тест, что для меня нет проблем передать один URL-адрес в хеш. – JackXu

+0

Все отлично работает, кроме параметров, проверяет ожидаемый результат, только что обновил вопрос –

+0

Я обновил его, пожалуйста, проверьте его. – JackXu

ответ

1

Я попробовал еще раз, вы можете достичь своей цели, как это.

<a [% FOREACH item IN $all_params %] [% item.key %] = [% item.value %][% END %] href="#"></a> 

Потому что в шаблоне, если вы используете хеш-образ, он будет распознан как хэш-ссылка в шаблоне. Он не может быть проанализирован непосредственно в вашем файле с таким шаблоном, как key=value

+0

Спасибо за ответ, это работает, если я должен добавить его в одном месте. то, что я хочу, это назначить все параметры одной переменной и использовать эту переменную в моих ссылках –

Смежные вопросы