Skip to content

Instantly share code, notes, and snippets.

@internoma
Last active May 30, 2016 16:37
Show Gist options
  • Save internoma/9095b25039bb2f1ab36bb450d812eebc to your computer and use it in GitHub Desktop.
Save internoma/9095b25039bb2f1ab36bb450d812eebc to your computer and use it in GitHub Desktop.
Patrón route - encapsulación por rutas
/* * ****************************************************************
// * Patrón route - encapsulación por rutas
// * ****************************************************************/
var route = {
_routes: {}, // Las rutas serán almacenadas en este objeto {ruta : función, ruta : función ...}
add: function(url, action) {
this._routes[url] = action;
},
run: function() {
for (var nameRoute in this._routes) {
// window.console.log(nameRoute);
if (location.href.match(nameRoute)) {
this._routes[nameRoute](); // ejecuta la función asociada a la ruta
return; // si ya se encontró la ruta salir de la iteración
}
}
}
};
/* * ****************************************************************
// * Patrón route - RUTAS
// * route.add('ruta', function)
// * se puede utilizar regex en la ruta
// * ****************************************************************/
// ruta 01 ejemplo
route.add('errores-javacript.html', function() {
window.alert('Hola, estamos en la página errores-javacript.html');
});
// ruta 02 ejemplo
route.add('errores-javacript2.html', function() {
window.alert('Hola, estamos en la página errores-javacript2.html');
});
(function() {
// DOM ready
route.run();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment