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
Backbone.js 木偶查询字符串更改触发路由事件_Backbone.js_Marionette - Fatal编程技术网

Backbone.js 木偶查询字符串更改触发路由事件

Backbone.js 木偶查询字符串更改触发路由事件,backbone.js,marionette,Backbone.js,Marionette,若我将新参数添加到查询字符串中,那个么路由更改事件将被触发,我不希望发生这种情况,如何解决这个问题 例如,我有路由“/#register”,如果我添加新参数,如“name=abc”,则路由变为“/#register?name=abc”,这很好,但也会触发路由更改事件 请注意,我正在使用window.location.hash添加查询字符串参数 谢谢, MSK为什么不使用主干路由器的导航方法呢 router.navigate('/#register?name=abc') navigate方法接

若我将新参数添加到查询字符串中,那个么路由更改事件将被触发,我不希望发生这种情况,如何解决这个问题

例如,我有路由“/#register”,如果我添加新参数,如“name=abc”,则路由变为“/#register?name=abc”,这很好,但也会触发路由更改事件

请注意,我正在使用window.location.hash添加查询字符串参数

谢谢,
MSK

为什么不使用主干路由器的
导航
方法呢

router.navigate('/#register?name=abc') 
navigate
方法接受第二个参数,即选项的散列。其中一个选项是
trigger
,您可以使用它触发路线更改


在不传递
{trigger:true}
的情况下,您的url将被更新,而不会触发路由器回调。

要更改url并添加历史记录条目而不触发路由,请执行以下操作:

Backbone.history.navigate('/#register?name=abc')
Backbone.history.navigate('/#register?name=abc', { replace: true })
要在不添加历史记录条目和不触发路由的情况下更改URL,请执行以下操作:

Backbone.history.navigate('/#register?name=abc')
Backbone.history.navigate('/#register?name=abc', { replace: true })

这对于提供可书签的URL非常有用,无需向用户的后退按钮历史添加步骤。

查看一些代码会有所帮助。你在寻找新路线做什么?更新你的模型?渲染不同的视图集?