Backbone.js : récupérer l’url de la page précédente

backbone-jsLe bout de code suivant est un exemple de routeur Backbone.js qui permet de récupérer le précédent fragment (ce qu’il y a après #). Ce fragment peut par exemple être utile à des fins analytiques.

var AppRouter = Backbone.Router.extend({

    /*les différentes routes de l'application*/
    routes: {
        "!"                  : "home",
        "!contact"           : "contact",
        "!article/:titre"     : "article"
    },
    initialize: function () {
        this.on("all", this.storeRoute);
        this.history = [];
    },
    /* ajout du fragment courant dans "history" */
    storeRoute: function() {
        return this.history.push(Backbone.history.fragment);
    },
    /* retourne le précédent fragment */
    previous: function(){
        var previous = null;
    	if (this.history.length > 0) {
           previous = this.history[this.history.length -1];
        }
    	return previous;
    },    
    home: function () {
    	/*...*/
    	App.Router.displayPrevious();
    	/*...*/
    },
    article: function(titre){
    	/*...*/
    	App.Router.displayPrevious();
    	/*...*/
    },
    contact: function(){
    	/*...*/
    	App.Router.displayPrevious();
    	/*...*/
    },
    /* affiche le résultat dans la console */
    displayPrevious: function (){
    	console.log(this.previous());    	
    }
});

source: http://stackoverflow.com/questions/17649913/how-to-detect-backbone-history-referer-history-length

Ce contenu a été publié le Javascript par Bruce. Mettez-le en favori avec son permalien.

A propos Bruce

Ingénieur informatique passionné par le développement, les nouvelles technologies et depuis quelques années par la blockchain et les crypto-monnaies. Je souhaite faire de la communauté Crypto-Lyon un espace ou tout le monde peut apprendre, s’informer et s’entraider et plus globalement faire rayonner la ville de Lyon dans le monde des cryptos !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *