Problema escribiendo código Javascript dinámicamente, en una vista

24 views
Skip to first unread message

nicolás rosbaco

unread,
Mar 13, 2017, 8:09:19 AM3/13/17
to web2py-...@googlegroups.com
Hola compañeros y compañeras, les comento:

Estoy escribiendo javascript en una vista para que muestren marcadores en un mapa (siguiendo este ejemplo de la librería leafletjs). Y me interesa rescatar las coordenadas de los diferentes lugares de la tabla y en función de ello armar el marcador con determinada info adicional.

El tema es que si yo escribo el código "a mano" anda bien; vean:

Si lo escribo así:
L.marker([{{=registro.latitud}},{{=registro.longitud}}]).addTo(mymap).bindPopup("<b>{{=registro.nombre}}</b></br><a href=\"#\">más info</a>").closePopup();

Veo esto:


Pero... si lo hago así:

        {{for registro in lugares:}}
            {{info = '<b>'+registro.nombre+'</b><br /><a href=\"'}}
            {{info += URL('default','index')+'\">más info</a>'}}

            L.marker([{{=registro.latitud}},{{=registro.longitud}}]).addTo(mymap).bindPopup("{{=info}}").closePopup();
        {{pass}}

Funciona mal, se ve de este modo:



No se a que se deba.... ¿alguna idea???

Gracias desde ya gente!!!!!!!!!!!!


Yoel Benitez Fonseca

unread,
Mar 13, 2017, 9:41:58 AM3/13/17
to web2py-usuarios
En el segundo ejemplo intenta con XML, así:

{{for registro in lugares:}}
    {{info = '<b>'+registro.nombre+'</b><br /><a href=\"'}}
    {{info += URL('default','index')+'\">más info</a>'}}

    L.marker([{{=registro.latitud}},{{=registro.longitud}}]).addTo(mymap).bindPopup("{{=XML(info)}}").closePopup();
{{pass}}

Saludos


--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuarios+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Yoel Benítez Fonseca
http://redevil.cubava.cu/
$ python -c "import this"





nicolás rosbaco

unread,
Mar 13, 2017, 10:25:13 AM3/13/17
to web2py-...@googlegroups.com
Hola Joel y gracias por tu tiempo, tu respuesta me solucionó el problema....

Habían dos cuestiones, la primera hacía quilombo el escapado que copie del ejemplo de la página para las comillas (se lo saqué, iba antes de la URL: \").... y después la función, ayudante, XML

{{info = '<b>'+registro.nombre+'</b><br /><a href='+URL('default','index')+'>más info</a>'}}

L.marker([{{=registro.latitud}},{{=registro.longitud}}]).addTo(mymap).bindPopup("{{=XML(info)}}").closePopup();

10^6 de gracias!!!!!




Marco Redondo Gmail

unread,
Mar 13, 2017, 10:42:06 AM3/13/17
to web2py-...@googlegroups.com
Buenas, no estoy seguro que sea tu solución.. probaste con {{=XML(info)}} ?

(...) .bindPopup("{{=XML(info)}}")  (...)


saludos

--

nicolás rosbaco

unread,
Mar 13, 2017, 11:06:37 AM3/13/17
to web2py-...@googlegroups.com
Si, Marcos. Gracias... era por ahí.
Muchas gracias a tod@s!



MGHSM

unread,
Jun 29, 2017, 2:50:32 PM6/29/17
to web2py-usuarios
El tema no es nuevo pero quizá sirva tener en cuenta que en lugar de usar

info = '<b>'+registro.nombre+'</b><br /><a href='+URL('default','index')+'>más info</a>'

y luego aplicar XML, es mejor usar los helpers provistos por web2py y escribir

info = CAT(B(registro.nombre), BR(), A("más info", _href=URL('default', 'index')))



Reply all
Reply to author
Forward
0 new messages