2013-03-03 41 views
5

Tôi đang sử dụng gói Router từ thiên thạch.Tại sao chức năng Meteor Router luôn chạy hai lần

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

Bất cứ khi nào trang/mẫu bài viết được tải, chức năng gọi lại trong Bộ định tuyến luôn được chạy hai lần. Tôi đang cố gắng sử dụng chức năng gọi lại để tăng số lượt xem của các bài viết. Vì vậy, điều này đặt ra một vấn đề (mỗi inc được thực hiện hai lần).

Đây có phải là hành vi dự định không? Hay tôi đã làm gì sai?

CẬP NHẬT

Nó thực sự không phải lúc nào được chạy hai lần. Điều này xảy ra khi trang được làm mới hoặc lần đầu tiên trình duyệt điều hướng đến trang. Bất kể, nó vẫn đặt ra một vấn đề.

+0

Đây không phải là hành vi dự định afaik, Làm thế nào để bạn tải url của từng bài viết? là nó thông qua một 'Meteor.Router.to'? hoặc url? – Akshat

+0

Tôi đang sử dụng Trình trợ giúp được cung cấp {{renderPage}} bên trong tệp html chính chứa thẻ . Và trang bài viết được tải với nội dung bên trong mẫu tương ứng. – Dave

+0

Ý tôi là khi bạn tải '/ article/1' trong trình duyệt của mình, bạn có sử dụng' 'để tải trang hoặc' Meteor.Router.to ('/ article/1' không) '? – Akshat

Trả lời

2

UPDATE:

Thủ phạm là gói HTML5-Lịch sử-API Tôi đang sử dụng cho IE 8+ hỗ trợ định tuyến. Giải pháp dưới đây sẽ phục vụ để giúp những người có cùng một thiết lập và vấn đề.


Tìm thấy giải pháp. Nhưng tôi không chắc đây có phải là cách dự định để xử lý việc này hay không.

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

Nếu có giải pháp tốt hơn, vui lòng đăng và tôi sẽ chấp nhận.

+0

Tính năng này không phải lúc nào cũng hoạt động trong FF, nhưng nó ngăn chặn được cú đúp trong Chrome. – cazgp

Các vấn đề liên quan