11

有没有办法通过模板或临时覆盖来禁用WRAPPERnew(\%config)parse()中设置的 a ?我想要一个默认值WRAPPER(我将用于 99.9% 的模板),但排除一些。

我一直在做这一切,Catalyst::View::TT就像配置概要中的示例一样,除了我不希望WRAPPER应用于我的所有模板。

4

3 回答 3

8

编辑包装器,以包含如下条件:

[% IF no_wrapper OR template.no_wrapper %] [% content %] [% ELSE %]
  top;
    [% content %]
  bottom;
[% END %]

这使我可以(1)在模板内部或(2)从存储中禁用包装器。

  1. [%- META no_wrapper = 1 -%]
  2. $c->stash->{no_wrapper} = 1

META var ...;是一个var可以通过template哈希访问的指令template.var

来源:http ://wiki.catalystframework.org/wiki/gettingstarted/howtos/template_wrappers

于 2010-03-02T22:42:15.300 回答
4

自己定义异常site/wrapper,顺便说一句,那里已经定义了异常。

[% IF template.name.match('\.(css|js|txt)');
     debug("Passing page through as text: $template.name");
     content;
   ELSE;
     debug("Applying HTML page layout wrappers to $template.name\n");
     content WRAPPER site/html + site/layout;
   END;
-%]
于 2010-02-19T21:47:04.427 回答
0

我偶然发现了同样的问题,并创建了一个更通用的解决方案,允许动态切换布局,或者根本没有布局。看这里:

带有 Dancer 和 Template::Toolkit 的多个布局/包装器

于 2013-08-31T23:27:55.430 回答