2013-02-19 94 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> 

我有点不确定这个设置是否与众不同为传送带附上网址。你有没有在任何地方行动?