Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不导致主干重新呈现页面的情况下更改URL?_Javascript_Backbone.js - Fatal编程技术网

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

Javascript 如何在不导致主干重新呈现页面的情况下更改URL?,javascript,backbone.js,Javascript,Backbone.js,我有一个主干应用程序 在一个区域中,存在子视图。这些都是从主干路由器正确路由的 routes: { primary-view(/:subview): 'someFunction' } 因此,我最终得到了一个URL,如:#/primary view/subview 每当用户单击更改子视图的菜单项时,我希望使URL保持最新。这些单击在主视图中处理,因此当用户单击其中一个链接时,页面中唯一重新呈现的部分是包含子视图的div 我试过: Backbone.history.navigate('#/prim

我有一个主干应用程序

在一个区域中,存在子视图。这些都是从主干路由器正确路由的

routes: { primary-view(/:subview): 'someFunction' }
因此,我最终得到了一个URL,如:
#/primary view/subview

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

我试过:

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


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

通常,这可以通过以下方法实现

每当您在应用程序中到达要另存为URL的点时,调用navigate以更新URL

在您的情况下,您应该从URL中删除哈希值

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


你不在子视图中使用事件吗?单击功能可以在不更改url或任何内容的情况下进行处理?Router.navigate调用History.navigate,我已经尝试过了。
Backbone.history.navigate('/primary-view/' + subview, {trigger: false});
router.navigate('/primary-view/' + subview)