我正在开发单页Meteor应用程序,并且正在使用Backbone.js处理路由。我尝试像旋转木马一样浏览页面,因此当我单击导航中的菜单项时,页面将向左或向右滑动以显示所选页面。但是,问题是每当我点击链接时整个页面都会重新加载,这会干扰轮播过渡。我想在单击链接时阻止页面重新加载,就像AngularJS所做的那样,但我有麻烦使它工作。我试图不使用#link,因为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"
答案 0 :(得分: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的旋转木马。你有没有在任何地方工作?