[Rio-pm] Mojolicious - inserindo código HTML no template via rota

Bruno Buss bruno.buss em gmail.com
Sábado Setembro 8 13:10:49 PDT 2012


Quase, mas ainda não.

O ideal é que o seu código em Perl não "gere" o código em Javascript.
Deixe o código em Javascript na página e faça um request pro seu servidor
apenas para buscar os dados que serão exibidos (e isso você já pode arrumar
para que o JSON retornado seja enviado diretamente para a sua função em
Javascript.)

Se você não tiver a menor ideia de como fazer isso, de uma olhada no
jQuery... os métodos básicos de ajax dele, são bem fáceis de usar :-)
http://api.jquery.com/jQuery.getJSON/

[ ]'s

2012/9/8 Manoel Domingues Junior <manoel.domingues.junior em gmail.com>

> Vou ir para essa estratégia então...
>
> Mas nesse caso eu criaria uma rota onde haveria esse render_json?
>
> Tipo, no meu frontend eu teria:
>
> <script src="/widget_timeline"></script>
>
> E no Mojolicious e teria:
>
>   get '/widget_timeline' => sub {
>     ...
>     $self->render_json($widget_timeline);
>   };
>
> Onde a variável $widget_timeline fosse uma estrutura em perl que seria
> traduzida para JSON.
>
> É isso?
>
>
> Abraços,
>
> Em 8 de setembro de 2012 00:24, breno <oainikusama em gmail.com> escreveu:
>
> Manoel, procure evitar escrever código JavaScript dentro do seu
>> backend. O mais adequado para dados mudando dinamicamente é passar
>> objetos JSON apenas, deixando que o JavaScript no frontend faça as
>> solicitações por estruturas diferentes conforme necessário.
>>
>> Pra esse tipo de solicitação o Mojolicious oferece o método
>> render_json(), que já transforma suas variáveis Perl em JSON.
>> https://metacpan.org/module/Mojolicious::Controller#METHODS
>>
>> []s
>>
>> -b
>>
>> 2012/9/8 Manoel Domingues Junior <manoel.domingues.junior em gmail.com>:
>> > Perfeito.
>> >
>> > Muito obrigado.
>> >
>> > Abraços,
>> >
>> > Em 7 de setembro de 2012 23:52, Renato Santos <renato.cron em gmail.com>
>> > escreveu:
>> >
>> >> Olá,
>> >>
>> >> você deve mudar sua view para:
>> >>
>> >> de <%= 'lalala' %>
>> >> para  <%== '<p>test</p>' %>
>> >>
>> >> vi no
>> >>
>> http://search.cpan.org/~sri/Mojolicious-3.36/lib/Mojolicious/Guides/Rendering.pod#Embedded_Perl
>> >> 2012/9/7 Manoel Domingues Junior <manoel.domingues.junior em gmail.com>
>> >>>
>> >>> Olá pessoal,
>> >>>
>> >>> Estou construindo mais uma aplicação web com mojolicious::lite e estou
>> >>> enfrentando mais uma dificuldade.
>> >>> A minha aplicação irá gerar gráficos via javascript, mas preciso
>> enviar
>> >>> esses dados pre-formatados entre tags <script></script>.
>> >>>
>> >>> A ideia é colocar um grafico semenhante a esse:
>> >>> http://www.highcharts.com/demo/line-basic/gray
>> >>>
>> >>> Como verão, existe alguns <div>'s que devo colocar no template, mas
>> >>> também devo colocar um código javascript. Esse código muda, pois
>> realiza
>> >>> consultas no banco de dados para obter os valores, logo criei uma
>> funcão que
>> >>> gera ele.
>> >>>
>> >>> Essa função retorna uma string com todo o código ($widget_timeline) e
>> >>> tento então passar o valor dessa string para o template, mas o
>> mojolicious
>> >>> faz a conversão para HTML, logo não aparece como código...
>> >>>
>> >>> Dentro da rota da minha aplicação coloquei um
>> >>> $self->stash(widget_timeline => $widget_timeline), acredito que tenha
>> que
>> >>> usar outra função para passar o código, ou então usar outra
>> abordagem...
>> >>>
>> >>> Sugestões?
>> >>>
>> >>> Abraços,
>> >>> --
>> >>> --
>> >>> Manoel Domingues Junior
>> >>> "Coletar dados é o primeiro passo para a sabedoria, mas compartilhar
>> >>> dados é o primeiro passo para a comunidade."
>> >>> IBM - Prodigy Linux
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> Rio-pm mailing list
>> >>> Rio-pm em pm.org
>> >>> http://mail.pm.org/mailman/listinfo/rio-pm
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Saravá,
>> >> Renato CRON
>> >> http://www.renatocron.com/blog/
>> >> @renato_cron
>> >>
>> >>
>> >> _______________________________________________
>> >> Rio-pm mailing list
>> >> Rio-pm em pm.org
>> >> http://mail.pm.org/mailman/listinfo/rio-pm
>> >
>> >
>> >
>> >
>> > --
>> > --
>> > Manoel Domingues Junior
>> > "Coletar dados é o primeiro passo para a sabedoria, mas compartilhar
>> dados é
>> > o primeiro passo para a comunidade."
>> > IBM - Prodigy Linux
>> >
>> >
>> > _______________________________________________
>> > Rio-pm mailing list
>> > Rio-pm em pm.org
>> > http://mail.pm.org/mailman/listinfo/rio-pm
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> --
> Manoel Domingues Junior
> "Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados
> é o primeiro passo para a comunidade."
> IBM - Prodigy Linux
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
Bruno C. Buss
http://www.brunobuss.net
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120908/37eb900d/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm