【发布时间】:2018-02-20 04:32:30
【问题描述】:
我想在 AngularJS 应用程序中使用查询字符串参数以及通常的路由参数,并且一直在关注这篇文章中的解决方案:how to pass querystring in angular routes?
解决方案似乎有效:首先使用$location.path 更改路由,然后使用$location.search 应用查询字符串参数。
但是,我遇到了一个不需要更改路由但查询参数需要更改的场景。
例如:
搬离
'/Books/Programming?id=123'
到
'/书籍/数学?id=234'
工作正常。
然而,
搬离
'书籍/编程?id=123'
到
'书籍/编程?id=124'
不工作。
AngularJS 似乎只收到常规路由参数更改的通知,而不是查询字符串参数的更改,因此如果查询字符串是 URL 中唯一更改的内容,则应用程序不会响应导航。
【问题讨论】:
-
在这里工作正常:plnkr.co/edit/lefewLl9jvfC2euDxR6X?p=preview。发布一个完整的最小示例来重现该问题,就像我刚刚所做的那样(但无法重现它)。
-
这听起来很奇怪:我一直在更改代码,在阅读了您的推荐之后,当我将其恢复到仅适用于更改查询字符串参数的状态时,它运行良好,但我不能再重现问题。谢谢。