/ / Explizites Aufrufen einer Ansicht in Catalyst - Perl, Vorlagen, Ansicht, Katalysator

Explizites Aufrufen einer Ansicht in Catalyst - Perl, Vorlagen, Ansicht, Katalysator

lesen http://search.cpan.org/~ether/Catalyst-Manual-5.9009/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod Aha $c->stash(template => "hello.tt");.

Es gibt eine Vorlage, aber wo ist die Ansicht? Warum wird die Ansicht nicht explizit angegeben?

Außerdem: Wie wird eine Ansicht explizit aufgerufen (nicht anhand des Vorlagennamens)?

Antworten:

4 für die Antwort № 1

Dies kann etwas schwierig sein, da es eine Kombination aus extrem flexiblem und einfachem DWIW ist. Das .tt in der Vorlage zeigt das an Vorlage :: Toolkit ist der mutmaßliche Standard. Es ist nicht notwendig, diese Ansicht zu verwenden, sie wird jedoch in den meisten Dokumenten verwendet.

Sie können alles rendern, was sich in Ihrem Vorrat befindet.$ctx durch Weiterleiten an eine Ansicht: $c->forward($c->view("JSON")); Zum Beispiel können Sie sich für den Rest des Anforderungszyklus wie folgt entscheiden $c->stash( current_view => "CSV" ). Die Ansichten müssen natürlich in Ihrer Anwendung installiert und konfiguriert sein. Sie können Ansichten auch direkt verwenden.

my $body = $c->view("Xslate")->render($c, "folder/email_template.tx", $params);

Ein kniffliger Teil wird was Sie tun end Methode (n) wird es tun.

Der allgemein empfohlene Standard ist Catalyst :: Action :: RenderView. Es ist intelligent (und flexibel, wenn Sie sein Verhalten ändern möchten). Wenn Sie eine Weiterleitung festgelegt haben, wird zum Beispiel keine Seite gerendert, sondern nur die Weiterleitung. Wenn Sie bereits generiert haben $c->response->body Inhalt wird es auch "einfach aufhören" und darauf vertrauen, dass das, was Sie bereits getan haben, das ist, was Sie wollten.

Die Flexibilität ist ausreichend komplexIch empfehle es wirklich, eine Spielzeug-App zusammenzustellen, die auf dem neu startenden Dev-Server ausgeführt wird, und alle Dinge auszuprobieren, die Sie besser verstehen möchten. Nichts davon ist an sich so schwer, aber es führt zu Verwirrung, wenn Sie es nicht in verdauliche Brocken zerlegen.