Marionette 查询字符串变化触发路由事件

Marionette query string change triggers route event

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

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

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

谢谢, MSK

为什么不使用 Backbone 路由器的 navigate 方法。

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

navigate 方法采用第二个参数,选项的散列。这些选项之一是 trigger,您可以使用它触发路线更改。

如果不通过 { trigger: true },您的 url 将在不触发路由器回调的情况下更新。

要更改 URL 并添加历史条目而不触发路由:

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

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

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

这对于在不向用户的后退按钮历史记录添加步骤的情况下提供可收藏的 URL 很有用。