Backbone.js 木偶查询字符串更改触发路由事件
若我将新参数添加到查询字符串中,那个么路由更改事件将被触发,我不希望发生这种情况,如何解决这个问题 例如,我有路由“/#register”,如果我添加新参数,如“name=abc”,则路由变为“/#register?name=abc”,这很好,但也会触发路由更改事件 请注意,我正在使用window.location.hash添加查询字符串参数 谢谢,Backbone.js 木偶查询字符串更改触发路由事件,backbone.js,marionette,Backbone.js,Marionette,若我将新参数添加到查询字符串中,那个么路由更改事件将被触发,我不希望发生这种情况,如何解决这个问题 例如,我有路由“/#register”,如果我添加新参数,如“name=abc”,则路由变为“/#register?name=abc”,这很好,但也会触发路由更改事件 请注意,我正在使用window.location.hash添加查询字符串参数 谢谢, MSK为什么不使用主干路由器的导航方法呢 router.navigate('/#register?name=abc') navigate方法接
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非常有用,无需向用户的后退按钮历史添加步骤。查看一些代码会有所帮助。你在寻找新路线做什么?更新你的模型?渲染不同的视图集?