阅读 http://search.cpan.org/~ether/Catalyst-Manual-5.9009/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod我看到 $c->stash(template => 'hello.tt');
。
模板有了, View 在哪?为什么没有明确指定 View ?
另外:如何显式调用 View (而不是通过模板名称)?
最佳答案
这可能有点棘手,因为它是极其灵活和简单的 DWIW 的组合。 .tt
在模板名称中表示 Template::Toolkit是假定的默认值。根本没有必要使用此 View ,但在大多数文档中都会使用它。
您可以渲染存储中的任何内容/$ctx
通过转发到 View :$c->forward($c->view("JSON"));
例如,或者您可以像这样决定请求周期的剩余时间 $c->stash( current_view => "CSV" )
.当然,您必须在应用程序中安装和配置 View 。您也可以直接使用 View -
my $body = $c->view("Xslate")->render($c, "folder/email_template.tx", $params);
一个棘手的部分变成了你的 end
方法就可以了。
一般推荐的默认值是Catalyst::Action::RenderView .它很聪明(如果你想改变它的行为,它也是灵活的)。例如,如果您设置了重定向,它不会呈现页面,它只会进行重定向。如果你已经生成了$c->response->body
内容它也会“停止”并相信你已经完成的就是你想要的。
在灵 active 方面有足够的复杂性,我真的建议将一个玩具应用放在一起,在重新启动的开发服务器上运行,并尝试所有你想更好地理解的东西。这些本身并没有那么难,但除非您将其分解成易于消化的 block ,否则它们都会加起来造成困惑。
关于perl - 在 Catalyst 中显式调用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548181/