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"
4

1 に答える 1

1

直接の URL の代わりに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 を添付するのが珍しいこの設定については、少し確信が持てません。これはどこかで機能していますか?

于 2013-02-19T08:38:45.980 に答える