Hola a todos!
Vamos al grano:
Supongamos que tengo un link con la url:
http://www.ejemplo.com/?param1=value1¶m2=value2¶m3=value3
y cuando le hago click, se parsea y obtiene el siguiente objeto:
{
param1: "value1",
param2: "value2",
param3: "value3"
}
y se lo pasa a una función que hace alguna acción cualquiera sea, por ejemplo, ruteo.
Para resolver el problema programé, utilizando JQuery y Underscore, lo siguiente:
$(document).on('click', 'a[href]', function() {
var $this = $(this);
if ($this.is('[data-on-before-request]')) {
var queryParams = _.reduce(this.search.slice(1).split('&'), function(res, el) {
var parts = el.split('=');
res[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);
return res;
}, {});
window[$this.attr('data-on-before-request')](queryParams);
}
});
Mi duda es si el código tiene errores o le falta algo. Cabe aclarar que no me importa enviar arreglos a travez de la url, si quiero eso, uso un formulario. Lo que quiero es hacer consultas simples.
Si les interesa: El objetivo de esto es terminar de programar una biblioteca de ruteo y carga dinamica de plantillas html. Por ahora, es para uso no comercial hasta que le realice testing. La voy a subir a github.com
Ya existen bibliotecas de ese tipo, pero las más populares son incomodas de usar, ya que requieren escribir mucho código en JavaScript. Además, todavía tengo una idea sobre esto y quiero plasmarla antes que se me olvide. Esta biblioteca me sirve para crear aplicaciones web de una sola página.
Espero sus respuestas. Saludos!