作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何添加vmethod使用 Dancer 时到模板工具包?
如果没有办法,我该如何添加一个函数/如何执行一个添加到 token 的函数的引用/?
最佳答案
添加一个custom vmethod 到 TT Dancer需要一些直接的 TT 包变量。我希望Dancer::Template对象提供对底层模板对象的访问。
这是一个可以在 Dancer route 使用的片段:
package mydancerapp;
use Dancer qw(:syntax);
# make sure TT module is loaded since Dancer loads it later in the request cycle
use Template::Stash;
# create list op vmethod, sorry its pretty trivial
$Template::Stash::LIST_OPS->{ uc_first } = sub {
my $list = shift;
return [ map { ucfirst } @$list ];
);
最好将它移到它自己的模块 mydancerapp::TT
或 mydancerapp::TT::VMethods
中,然后将其加载到您的主应用程序类中。
然后您可以在您的模板中使用它,例如:
# in route
get '/' => sub {
template 'index', { veggies => [ qw( radishes lettuce beans squash )] };
};
# in template: views/index.tt
<p>[% veggies.uc_first.join(',') %]</p>
如果一切顺利,那么您应该会在输出中看到:Radishes,Lettuce,Beans,Squash
。 :)
关于perl - 使用 Dancer 时如何将 vmethod 添加到模板工具包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487173/
如何添加vmethod使用 Dancer 时到模板工具包? 如果没有办法,我该如何添加一个函数/如何执行一个添加到 token 的函数的引用/? 最佳答案 添加一个custom vmethod 到 T
我是一名优秀的程序员,十分优秀!