2013-03-03 17 views
5

Uso il pacchetto del router da meteorite.Perché le funzioni di Meteor Router funzionano sempre due volte

Meteor.Router.add 
    "/article/:id": -> 
    log "article" 
    "article" 

Ogni volta che viene caricata la pagina dell'articolo/modello, la funzione di richiamata nel router viene sempre eseguita due volte. Sto cercando di utilizzare la funzione di callback per incrementare il numero di visualizzazioni degli articoli. Quindi questo pone un problema (ogni inc è fatto due volte).

È questo il comportamento previsto? O ho fatto qualcosa di sbagliato?

UPDATE

In realtà non sempre essere eseguito due volte. Succede quando la pagina viene aggiornata o per la prima volta il browser naviga verso la pagina. Indipendentemente da ciò, rappresenta ancora un problema.

+0

Questo non è il comportamento previsto afaik, come si carica l'URL di ciascun articolo? è tramite un 'Meteor.Router.to'? o un url? – Akshat

+0

Utilizzo l'helper {{renderPage}} fornito all'interno del file html principale che contiene il tag . E la pagina dell'articolo è caricata con contenuti all'interno del rispettivo modello. – Dave

+0

Voglio dire quando carichi '/ article/1' nel tuo browser usi un' 'per caricare la pagina o' Meteor.Router.to ('/ article/1') '? – Akshat

risposta

2

UPDATE:

Il colpevole è il pacchetto di HTML5-Storia-API che sto utilizzando per il supporto IE 8+ routing. La soluzione seguente servirà per aiutare le persone con la stessa configurazione e problema.


Trovato una soluzione. Ma non sono sicuro se questo è il modo previsto per gestirlo.

"/article/:id": (id) -> 
    unless this.init 
    Session.set "articleId", id 
    Meteor.call "incArticleViews", id 
    "article" 

Se c'è una soluzione migliore, si prega di postarlo e accetterò.

+0

Questo non funziona sempre in FF, ma impedisce il doppio successo in Chrome. – cazgp

Problemi correlati