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

时间:2015-02-16 19:37:35

标签: backbone.js marionette

如果我向查询字符串添加新参数,则会触发路由更改事件,我不希望这种情况发生,我该如何解决?

例如我有路线' / #register'如果我添加新参数,例如' name = abc'然后路由成为' / #register?name = abc'这很好,但它也会触发路线改变事件。

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

谢谢, MSK

2 个答案:

答案 0 :(得分:1)

为什么不使用Backbone Router的navigate方法。

router.navigate('/#register?name=abc') 

navigate方法接受第二个参数,即选项的哈希值。其中一个选项是trigger,您可以使用它来触发路线更改。

如果不通过{ trigger: true },您的网址将会更新而不会触及您的路由器回调。

答案 1 :(得分:0)

更改网址并添加历史记录条目而不触发路线:

Backbone.history.navigate('/#register?name=abc')

要更改URL而不添加历史记录条目且不触发路径:

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

这对于提供可收藏的网址非常有用,而无需向用户的后退按钮历史记录添加步骤。