NAME
Mojolicious::Component - Module-based Template Class
ABSTRACT
Module-based Template Base Class
SYNOPSIS
package App::Component::Image;
use Mojo::Base 'Mojolicious::Component';
has alt => 'random';
has height => 126;
has width => 145;
has src => '/random.gif';
1;
# __DATA__
#
# @@ component
#
# <img
# alt="<%= $component->alt %>"
# height="<%= $component->height %>"
# src="<%= $component->src %>"
# width="<%= $component->width %>"
# />
package main;
my $component = App::Component::Image->new;
# $component->render
DESCRIPTION
This package provides an abstract base class for rendering derived component-based template (partials) classes.
ATTRIBUTES
This package has the following attributes:
controller
controller(InstanceOf["Mojolicious::Controller"])
This attribute is read-only, accepts (InstanceOf["Mojolicious::Controller"])
values, and is optional.
space
space(InstanceOf["Data::Object::Space"])
This attribute is read-only, accepts (InstanceOf["Data::Object::Space"])
values, and is optional.
template
template(InstanceOf["Mojo::Template"])
This attribute is read-only, accepts (InstanceOf["Mojo::Template"])
values, and is optional.
METHODS
This package implements the following methods:
render
render(Any %args) : Str
The render method loads the component template string data from the DATA
section of the component class and renders it using the Mojo::Template object available via "template".
variables
variables(Any %args) : (Any)
The variables method is called automatically during template rendering and its return value, assumed to be key-value pairs, are passed to the template rendering method as template variables. Any key-value pairs passed to the "render" method will be passed to this method making this method, if overridden, the ideal place to set component template variable defaults and/or override existing variables.
- variables example #2
-
# given: synopsis my $variables = { $component->variables(true => 1, false => 0) };
AUTHOR
Al Newkirk, awncorp@cpan.org
LICENSE
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".