=head1 NAME Mojolicious::Plugin::JSUrlFor - Mojolicious "url_for" helper for javascript =head1 SYNOPSIS # Mojolicious $self->plugin('JSUrlFor'); # Mojolicious::Lite plugin 'JSUrlFor'; # In you application my $r = $self->routes; $r->get('/messages/:message_id')->to('messages#show')->name('messages_show'); # In your layout template <%= js_url_for%> # In your javascript $.getJSON( url_for( 'messages_show', {message_id: 123} ), params, function() { ... } ) # Instead of helper you can use generator for generating static file ./your_app.pl generate js_url_for public/static/url_for.js # And then in your layout template # Or let it generate on the fly # Can be usefull if you have only RESTful API without templates and you want to provide routes names for UI $self->plugin('JSUrlFor', {route => '/javascript/url.js'}); =head1 DESCRIPTION I like Mojlicious routes. And one feature that I like most is that you can name your routes. So, you can change your routes without rewriting a single line of dependent code. Of course this works if you use routes names in all of your code. You can use routes name everywhere except... javascript. But with you can use routes names really everywhere. This plugin support mounted (see ) apps too. L contains only one helper that add ulr_for function to your client side javascript. =head1 HELPERS =head2 C In templates <%= js_url_for %> This helper will add url_for function to your client side javascript. In "production" mode this helper will cache generated code for javascript "url_for" function =head1 CONFIG OPTIONS =head2 C Simulate static javascript file. It can be usefull if you have RESTfull API and want to provide js file with routes. =head1 GENERATORS =head2 C ./your_app.pl generate js_url_for $relative_file_name This command will create $relative_file_name file with the same content as "js_url_for" helper creates. Then you should include this file into your layout template with "script" tag. =head1 METHODS L inherits all methods from L and implements the following new ones. =head2 C $plugin->register; Register plugin in L application. =head1 AUTHOR Viktor Turskyi =head1 BUGS Please report any bugs or feature requests to Github L Also you can report bugs to CPAN RT =head1 SEE ALSO L, L, L. =cut