如何在不导致Backbone重新呈现页面的情况下更改URL?

时间:2014-01-23 16:42:40

标签: javascript backbone.js

我有一个Backbone应用程序。

在一个区域,有子视图。这些是从Backbone路由器正确路由的。

routes: { primary-view(/:subview): 'someFunction' }

所以我最终得到的网址如:#/primary-view/subview

每当用户点击更改子视图的菜单项时,我都希望保持URL的最新状态。这些点击在主视图中处理,以便当用户单击其中一个链接时,重新呈现的页面的唯一部分是包含子视图的div。

我试过了:

Backbone.history.navigate('#/primary-view/' + subview, {trigger: false});

window.location.hash = '#/primary-view/' + subview;

但这两个都会导致整个主视图被重新渲染。

1 个答案:

答案 0 :(得分:1)

通常可以使用router.navigate来实现。

  

每当您在应用程序中找到要保存为URL的点时,请调用导航以更新URL。

在您的情况下,您应从网址中删除哈希

Backbone.history.navigate('/primary-view/' + subview, {trigger: false});

router.navigate('/primary-view/' + subview)