【问题标题】:How to detect change in only query string parameters with AngularJS Route?如何使用AngularJS Route检测仅查询字符串参数的变化?
【发布时间】: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。发布一个完整的最小示例来重现该问题,就像我刚刚所做的那样(但无法重现它)。
  • 这听起来很奇怪:我一直在更改代码,在阅读了您的推荐之后,当我将其恢复到仅适用于更改查询字符串参数的状态时,它运行良好,但我不能再重现问题。谢谢。

标签: angularjs ngroute


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多