2013-02-19 3 views
1

Я разрабатываю одностраничное приложение Meteor, и я обрабатываю маршрутизацию с использованием Backbone.js. Я пытаюсь перемещаться по страницам как карусель, поэтому, когда я нажимаю элемент меню в навигации, страница будет скользить влево или вправо, чтобы открыть выбранную страницу. Однако проблема заключается в том, что всякий раз, когда я нажимаю ссылку, вся страница перезагружается, и это мешает переходу на карусель. Я хочу, чтобы страница не перезагружалась, когда я нажимаю ссылку, например, что делает AngularJS, но у меня проблемы с работой. Я пытаюсь не использовать # ссылки, потому что в пакете метеорных пауков говорится, что для пауков видны только реальные ссылки. у кого-нибудь есть решение?Meteor Backbone Routing Prevent Page Refresh

Это 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> 

Я немного не уверен в этой настройке своей необычной для прикрепления url для карусели. У вас есть работа в любом месте?