如何使用 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,问题不再发生。问题仍然是我之前错过的它不起作用。
将其标记为已解决,因为它不再发生。
我想在 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,问题不再发生。问题仍然是我之前错过的它不起作用。
将其标记为已解决,因为它不再发生。