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

Manoel Domingues Junior manoel.domingues.junior em gmail.com
Sábado Setembro 8 19:50:08 PDT 2012


Oi,

Não entendi muito bem.
Eu faria um request para o servidor de forma a buscar os dados que serão
exibidos?

Então no código da página eu teria uma função em javascript que buscaria os
dados em /widget_timeline, por exemplo? Tipo:

$.getJSON("/widget_timeline",

  {
    time: "24"

  },

Que dados eu retornaria? Poderia retornar o objeto Highcharts.Chart (
http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/
)

Como eu faria para minha função em javascript acessar esses dados?

Estou perdido...

Abraços,

Em 8 de setembro de 2012 17:10, Bruno Buss <bruno.buss em gmail.com> escreveu:

> 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
>
> _______________________________________________
> 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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120908/82281686/attachment-0001.html>


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