【发布时间】:2017-10-31 14:34:42
【问题描述】:
在某些情况下,我需要简单地更新 URL 参数(通过代码)而不触发任何事件。但是,如果用户使用浏览器返回按钮返回或手动更改 url 参数,我仍然需要触发某些操作。
在 UI-Router v1.x 之前,我曾经将{ notify: false } 与$stateChangeSuccess 事件结合使用来处理这类事情。但是现在dynamic params 是要走的路,我不知道如何再做这项工作。
我已将路由的所有参数定义为动态的,当我执行$state.go(".", params) 时,控制器不会刷新。这是预期的。 $transition.onSuccess 仍然会触发,我觉得这有点奇怪,我不希望在这种情况下触发此事件。
当我使用返回按钮返回时,或者如果我手动更改参数,同样的事情也会发生。控制器不会刷新,$transition.onSuccess 会触发。
我的主要问题是我如何知道一个事件来自用户,而另一个来自代码?我在这里想念什么?我检查了 onSuccess 回调的转换参数,但找不到任何可以帮助我的东西。是否有我应该使用的不同事件/挂钩,或者这对于最新的 UI-Router 根本不可能?
谢谢。
【问题讨论】:
标签: angularjs angular-ui-router back