11

テンプレートを使用するか、一時的にオーバーライドして、new(\%config)WRAPPERに設定され た a を無効にする方法はありますか? デフォルトは 1 つ(テンプレートの 99.9% に使用する) にしたいのですが、一部を除外します。parse()WRAPPER

すべてのテンプレートに適用したくないことを除いて、構成の概要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介してアクセスできるようにするディレクティブですtemplatetemplate.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 に答える