2013-02-19 87 views
1

我正在開發一個單頁面的Meteor應用程序,我正在使用Backbone.js處理路由。我試圖像旋轉木馬一樣瀏覽頁面,所以當我點擊導航菜單項時,頁面會向左或向右滑動以顯示所選頁面。然而,問題是每當我點擊一個鏈接整個頁面將重新加載,這干擾了傳送帶轉換。當我點擊一個鏈接時,我想阻止頁面重新加載,就像AngularJS做的一樣,但我有麻煩讓它工作。我試圖不使用#鏈接,因爲spiderable meteor包說蜘蛛只有真實的鏈接。有沒有人有辦法解決嗎?流星骨幹路由防止頁面刷新

這是HTML:

<div id="main-navbar" class="navbar"> 
    <div class="navbar-inner rectangle-navbar"> 
    <div class="container"> 
     <ul class="nav"> 
     <li><a href="/">Home</a></li> 
     <li><a href="/login">Login</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 

,這是CoffeeScript的:

Router = Backbone.Router.extend 
    routes: 
    "":     "main" 
    "login":   "login" 

    login: -> 
    slideCarousel 0, false 

    main: -> 
    slideCarousel 1, true 

appRouter = new Router 
Meteor.startup -> 
    Backbone.history.start pushState: true 

slideCarousel = (slideId, visibility) -> 
    $("#content").carousel slideId 
    $('#content').carousel "pause" 
    if visibility == false 
    $("#landing").hide "slow" 
    else 
    $("#landing").show "slow" 

回答

1

嘗試使用http://backbonejs.org/#Router-navigate導航,而不是直接的網址,試試這個,如果它的工作原理,你可以使用綁定事件處理程序:

<li><a href="/" onclick="Router.navigate('/');return false;">Home</a></li> 
<li><a href="/login" onclick="Router.navigate('/login');return false;">Login</a></li> 

我有點不確定這個設置是否與衆不同爲傳送帶附上網址。你有沒有在任何地方行動?