有没有办法通过模板或WRAPPER
临时覆盖禁用new(\%config)中设置的parse()
?我希望有一个默认WRAPPER
(我将用于99.9%的模板),但不包括一些。
我正在通过Catalyst::View::TT
执行此操作,就像configuration synopsis中的示例一样,除了我不希望WRAPPER
应用于我的所有模板。
答案 0 :(得分:8)
编辑包装器,以包含类似的条件:
[% IF no_wrapper OR template.no_wrapper %] [% content %] [% ELSE %]
top;
[% content %]
bottom;
[% END %]
这允许我在模板内部(1)或(2)从存储中禁用包装。
[%- META no_wrapper = 1 -%]
$c->stash->{no_wrapper} = 1
META var ...;
是一个指令,通过var
哈希template
template.var
来源:http://wiki.catalystframework.org/wiki/gettingstarted/howtos/template_wrappers
答案 1 :(得分: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;
-%]
答案 2 :(得分:0)
我偶然发现了同样的问题,并创建了一个更通用的解决方案,允许动态切换布局,或根本没有布局。见这里:
More than one layout/wrapper with Dancer and Template::Toolkit