2013-03-25 33 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