如何使用 AngularJS 路由检测仅查询字符串参数的变化?

How to detect change in only query string parameters with AngularJS Route?

我想在 AngularJS 应用程序中使用查询字符串参数以及常用的路由参数,并且一直在关注此 post 中的解决方案:how to pass querystring in angular routes?

解决方案似乎有效:首先使用 $location.path 更改路由,然后使用 $location.search.

应用查询字符串参数

但是,我遇到了一个不需要改变路由但需要改变查询参数的场景。

例如:

移动自
'/Books/Programming?id=123'

'/Books/Mathematics?id=234'
工作正常。

然而,

移动自
'Books/Programming?id=123'

'Books/Programming?id=124'
不起作用。

似乎 AngularJS 只收到常规路由参数更改的通知,而不通知查询字符串参数的更改,因此如果查询字符串是 URL 中唯一更改的内容,应用程序不响应导航。

经 AngularJS 1.6.5 验证,根据@JB-Nizet 的 Plunkr,问题不再发生。问题仍然是我之前错过的它不起作用。

将其标记为已解决,因为它不再发生。