【问题标题】:Meteor Backbone Routing Prevent Page Refresh流星骨干路由防止页面刷新
【发布时间】:2013-02-19 05:55:00
【问题描述】:

我正在开发一个单页 Meteor 应用程序,我正在使用 Backbone.js 处理路由。我正在尝试像轮播一样导航页面,因此当我单击导航中的菜单项时,页面将向左或向右滑动以显示所选页面。但是,问题是每当我单击一个链接时,整个页面都会重新加载,这会干扰轮播转换。我想防止在单击链接时重新加载页面,就像 AngularJS 所做的那样,但我无法使其正常工作。我试图不使用 # 链接,因为可蜘蛛的流星包说只有真正的链接对蜘蛛可见。有人有解决办法吗?

这是 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"

【问题讨论】:

    标签: backbone.js meteor


    【解决方案1】:

    尝试使用http://backbonejs.org/#Router-navigate 导航而不是直接 url,试试这个,如果可行,您可以使用绑定事件处理程序:

    <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 是不寻常的。你在任何地方都有这个工作吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多