Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1e6fdf48

Von Moritz Bunkus vor fast 11 Jahren hinzugefügt

  • ID 1e6fdf4876cf4b5ee1eedd4ca6ad2888fec8a152
  • Vorgänger 37ff0a6b
  • Nachfolger 293c7b64

ClientJS: Controller-Instanz zum Rendern auch bei ->new setzen können

Unterschiede anzeigen:

SL/ClientJS.pm
use Rose::Object::MakeMethods::Generic
(
scalar => [ qw(controller) ],
'scalar --get_set_init' => [ qw(_actions _flash _error) ],
);
......
sub render {
my ($self, $controller) = @_;
$controller ||= $self->controller;
$self->reinit_widgets if $::request->presenter->need_reinit_widgets;
return $controller->render(\$self->to_json, { type => 'json' });
}
......
my ($self) = @_;
# Create a new client-side JS object and do stuff with it!
my $js = SL::ClientJS->new;
my $js = SL::ClientJS->new(controller => $self);
# Show some element on the page:
$js->show('#usually_hidden');
......
# Rendering can also be chained, e.g.
$js->html('#selector', $html)
->render($self);
->render;
}
=head1 OVERVIEW
......
Returns the actions gathered so far as a JSON string ready to be sent
to the client.
=item C<render $controller>
=item C<render [$controller]>
Renders C<$self> via the controller. Useful for chaining. Equivalent
to the following:
$controller->render(\$self->to_json, { type => 'json' });
The controller instance to use can be set during object creation (see
synopsis) or as an argument to C<render>.
=item C<dialog>
Tells C<$self> that the next action is to be called on a jQuery UI

Auch abrufbar als: Unified diff