2013-03-03 11 views
5

Używam pakietu routera z meteorytu.Dlaczego funkcje Meteor Router są zawsze uruchamiane dwukrotnie?

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

Za każdym razem, gdy strona/szablon artykułu zostanie załadowany, funkcja wywołania zwrotnego w routerze zawsze zostanie uruchomiona dwukrotnie. Próbuję użyć funkcji oddzwaniania w celu zwiększenia liczby wyświetleń artykułów. Stwarza to problem (każde inc jest wykonywane dwukrotnie).

Czy to jest zamierzone zachowanie? Czy zrobiłem coś złego?

UPDATE

to faktycznie nie zawsze prowadzony dwukrotnie. Dzieje się tak, gdy strona jest odświeżana lub po raz pierwszy przeglądarka przechodzi do strony. Bez względu na to nadal stanowi problem.

+0

To nie jest zamierzone zachowanie afaik, Jak ładować adres URL każdego artykułu? czy to przez "Meteor.Router.to"? lub adres URL? – Akshat

+0

Używam dostarczonego Pomocnika {{renderPage}} wewnątrz głównego pliku html, który zawiera znacznik . I strona artykułu jest załadowana zawartością wewnątrz odpowiedniego szablonu. – Dave

+0

Mam na myśli, że po wczytaniu '/ article/1' w przeglądarce użyjesz' 'do załadowania strony lub' Meteor.Router.to ('/ article/1') '? – Akshat

Odpowiedz

2

UPDATE:

winowajcą jest pakiet HTML5-Historia-API Używam wsparcia IE 8+ routingu. Poniższe rozwiązanie pomoże ludziom z tą samą konfiguracją i problemem.


Znaleziono rozwiązanie. Ale nie jestem pewien, czy jest to zamierzony sposób radzenia sobie z tym.

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

Jeśli istnieje lepsze rozwiązanie, proszę to opublikować, a zaakceptuję.

+0

To nie zawsze działa w FF, ale zapobiega podwójnemu trafieniu w Chrome. – cazgp

Powiązane problemy