Mojolicious — использование route на стороне браузера

Задача — формирование URL в браузере. Хотел уже писать сам плагин, но набрёл на готовый Mojolicious::Plugin::JSUrlFor  — спасибо Viktor Turskyi.

# 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
  <head>
  <%= js_url_for%>
  </head>

  # 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
  <head>
    <script type="text/javascript" src='/static/url_for.js'> </script>
  </head>

Leave a Reply