私はDancer2を使ってWebアプリケーションを構築しています。それは素晴らしい作品が、私は、ブラウザでソースを表示、生成されたHTMLソースコードがそうDancer2のconfig.yml(空白を取り除く)のTemplate :: Toolkitの設定
<tr>
<td>2</td>
<td>Cheeseburger</td>
<td>4.50 €</td>
</tr>
私のテンプレートのように、散乱空白の一杯になったときに空白がある今の場所で<% ... %>
コードを持っていました。
<tr>
<td>2</td>
<td>Cheeseburger</td>
<td>4.50 €</td>
</tr>
または、さらに良い:
<tr><td>2</td><td>Cheeseburger</td><td>4.50 €</td></tr>
私はテンプレートを使用しています:: ToolkitとTRIM
属性は私が必要とする正確に何であると思ったし、それを追加しました、それはこのように見えた場合、私は好みます〜へ私のconfig.yml
:
template: "template_toolkit"
session: "YAML"
engines:
session:
YAML:
cookie_duration: 6 months
template:
template_toolkit:
start_tag: '<%'
end_tag: '%>'
TRIM: '1'
しかし、これは動作しません。私は既にstart_tag
とend_tag
を別のものに変更しました(このファイルが読み込まれていることを確認するため)。しかし、TRIM
オプションはありません。
間違ったオプションを使用していますか、間違った場所に置いていますか?私がやったすべての検索は、TTオプションをプログラム的に設定する方法を示しました。 this answerにあります。しかし、TT関連のものを明示的にインスタンス化していないので、私はそのようなコードをどこに置くべきかも知らない。
dancer2 -a so
でアプリを作成しました。
ビュー/ index.tt
<table>
<tbody>
<% FOREACH item in group.items %>
<tr>
<td><% item.order_num %></td>
<%# one-line comment %>
<%# one-line comment %>
<%# one-line comment %>
<td><% item.desc %></td>
<%# one-line comment %>
<td><% currency(item.price) %></td>
</tr>
<% END %>
</tbody>
</table>
group.items
はハッシュリファレンスの配列です。 currency
は、価格をフォーマットする関数です。 <%# one-line comment %>
は私の古いコードです(私はHandlebarsからDancer2に移行しています)。
のlib/so.pm(アプリケーションのモジュール)
package so;
use Dancer2;
our $VERSION = '0.1';
get '/' => sub {
my $group = {
items => [
{
order_num => 1,
desc => 'Hamburger',
price => 350,
},
{
order_num => 2,
desc => 'Cheeseburger',
price => 450,
},
]
};
template 'index', {
group => $group,
currency => sub { sprintf('%.2f €', $_[0]/100); },
};
};
true;
私たちがテストできるように、あなたの例と一致するテンプレートの切り取りをここに示してください。 – stevieb
@stevieb私はちょうど私のポストを修正しました。 – PerlDuck
個々のブロックから空白を無視するには、そこに '-'を置くこともできます。それぞれ「<%-' and '-%>」となります。これをJSコードで使用する場合は注意してください。足で自分を撃つかもしれません。 – simbabque