gpt4 book ai didi

perl - 使用 Dancer 时如何将 vmethod 添加到模板工具包?

转载 作者:行者123 更新时间:2023-12-04 18:38:26 24 4
gpt4 key购买 nike

如何添加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::TTmydancerapp::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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com