2013-03-25 34 views
1

,我嘗試過操縱路線,我讓他們工作,但我只是想知道爲什麼當沒有其他路線重新加載時,主頁的鏈接實際上會重新加載頁面。骨幹家庭路線在一個非常簡單的主幹應用中重新加載頁面

這裏是我的路由器:

App.Router = Backbone.Router.extend({ 
routes: { 
    '':    'index', 
    'trips':  'trips', 
    'trips/new': 'newTrip', 
    'trips/:id': 'showTrip' 
}, 

index: function(){ 

    App.trips = new App.Collections.Trips ; 

    App.trips.fetch().then(function(){ 

     new App.Views.App({ collection: App.trips }); 

    }); 
}, 

trips: function(){ 
    console.log('All trips') ; 
}, 

newTrip: function(){ 
    console.log('new trip') ; 
    var new_trip = new App.Views.Trip.New ; 

    $('#content').empty().append(new_trip.el) ; 

}, 

showTrip: function(id){ 
    console.log('trips id:' + id) ; 
} 
}); 
+0

做鏈接看起來像什麼處理,他們是如何構建的?如果他們在查看代碼中,你可以包含這段代碼? – 2013-03-25 05:52:43

+0

您是否添加了事件處理程序來防止默認行爲並調用'Backbone.history.navigate(...)'?鏈接將像平常一樣行事,除非您明確地做其他事情。 – loganfsmyth 2013-03-25 05:52:53

+0

@StuartM我的家鏈接純粹是:'Home 2013-03-25 06:52:34

回答

2

如果您使用的骨幹路由器或鏈接,您必須瞭解每個路線與#只要你沒有啓用pushState的處理事實(在你的瀏覽器和服務器)。

所以,如果你需要設置家庭使用#

<a class="brand" href="#/">Home</a>的鏈接,否則該鏈接爲本地URL

+0

謝謝你。它適用於'href =「#/」'。現在我試圖使用pushState,但不知何故它不起作用。我使用Laravel 4作爲後端,Chrome使用瀏覽器。它不應該工作嗎?如果你可以在這裏看看我的問題[鏈接] http://stackoverflow.com/questions/15498793/backbone-pushstate-and-laravel-4-routes-wont-work – 2013-03-25 07:21:03