2013-03-03 12 views
5

私はmeteoriteのRouterパッケージを使用しています。Meteor Routerの機能が常に2回実行される理由

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

記事ページ/テンプレートが読み込まれるたびに、ルータのコールバック機能は常に2回実行されます。私は、記事のビュー数を増やすためにコールバック関数を使用しようとしています。これは問題を提起します(すべてのincは2回実行されます)。

これは意図した動作ですか?それとも私は何か悪いことをしましたか?

UPDATEは

それは実際には常に二回実行されていません。これは、ページがリフレッシュされたとき、またはブラウザがページに最初にナビゲートするときに発生します。それにもかかわらず、それはまだ問題を引き起こす。

+0

これは意図した動作ではありませんafaik、どのように各記事のURLを読み込みますか?それは「流星」を経由しているのですか?またはURL? – Akshat

+0

タグを含むメインのhtmlファイルの中に、提供されているヘルパー{{renderPage}}を使用しています。記事ページにはそれぞれのテンプレート内にコンテンツが読み込まれます。 – Dave

+0

あなたのブラウザで '/ article/1'を読み込んだとき、ページを読み込むために' 'を使うか、または' Meteor.Router.to( '/ article/1' ) '? – Akshat

答えて

2

UPDATE:

犯人は、私はIE 8 +ルーティングのサポートのために使用しているHTML5-歴史-APIのパッケージです。以下の解決策は、同じ設定と問題を持つ人々を助けるために役立ちます。


解決策が見つかりました。しかし、これがこれを処理するための意図された方法であるかどうかはわかりません。

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

もっと良い解決策がある場合は投稿してください。

+0

これはFFでは必ずしも機能しませんが、Chromeではダブルヒットを防止します。 – cazgp

関連する問題