用mojolicious构建html5 datalist的最佳方法是什么?
我找了一个标记帮助器,但没有找到构建它的标签助手。
以下是数据列表的示例:
<datalist id="frameworks">
<option value="MooTools">
<option value="Moobile">
<option value="Dojo Toolkit">
<option value="jQuery">
<option value="YUI">
</datalist>
列表是动态的,是从db中获取的,所以我不能使用静态html块。
有类似的标签助手,例如我可以将<select>
标记添加到我的模板中:
%= select_field country => [[Germany => 'de'], 'en']
产生:
<select name="country">
<option value="de">Germany</option>
<option value="en">en</option>
</select>
但我在default tag helpers中找不到任何关于数据列表的内容。
答案 0 :(得分:3)
已经有一段时间了,但也许会发现它很有用。
在控制器中,您需要一个包含一些项目的数组。让我们创建它:
my @levelsArray = ();
for (my $i=0;$i<10;$i++){
push @levelsArray, "level00".$i;
}
之后,将其发送到模板:
get '/index' => sub {
my ( $mojo ) = @_;
$mojo -> stash ('levelsArray' => \@levelsArray);
$mojo -> render (template => 'index' );
};
最后,使用:
渲染它<%= select_field 'levelSelected' => [ @{ stash('levelsArray') }] %>
答案 1 :(得分:-1)
我不确定这是多么具有特定性,但是模板中的简单html就不够了:
<datalist id="frameworks">
<option value="MooTools">
<option value="Moobile">
<option value="Dojo Toolkit">
<option value="jQuery">
<option value="YUI">
</datalist>
<input type="text" list="frameworks" />
修改强>
让我澄清一下,这不是模板中的静态HTML ...您将在控制器中获取数据并将该数据传递给模板,模板将使用模板引擎构建此类HTML。