angularjs - AngualrJs:如何检测用户何时在浏览器的地址栏中输入无效状态?
问题描述
有点相关:Angular-ui-router 获取先前的状态。
我有搜索结果视图。显然,用户在浏览器的地址栏中输入这个 URL 并在那里导航是没有意义的。
我想检测他是否这样做并发出警告。
但是,怎么做?如果用户直接去那里,则没有状态转换。那么,我该如何检测呢?
解决方案
当用户手动输入 url - 你的应用程序被重新启动,所以使用 app.run 来跟踪位置:
app.module('myModule').run(['$location'], ($location) => {
if ($location.path().startsWith('/search')) {
alert('bad boy')
}
})
或第一次状态更改以跟踪状态名称:
app.module('myModule').run(['$transitions'], ($transitions) => {
const deregister = $transitions.onSuccess({}, (transition) => {
if (transition.to().name === 'search') {
alert('bad girl')
}
deregister();
})
})