javascript - 如何找到导致非自愿路由的代码位?(在旧网站中)
问题描述
请帮助我,我正在重用一个基于 AngularJS 的旧网站,但我一直遇到由未知代码引起的意外路由事件。
当我按下网站上的各种元素时,这些元素都没有带有此类代码的明显事件处理程序,路由会按预期导致“页面未找到”页面。
我已经在“$location”和“$route”的所有引用周围放置了断点。我查看了代码中的所有“href”属性,没有发现任何可疑之处。
当我在 '$routeChangeStart' 钩子中放置一个断点时,如下所示
$rootScope.$on('$routeChangeStart', function (event, next, current) {
debugger;
//.....
}
我有以下对象:
next = {
params: {}
pathParams: {}
}
(没有 "$$route" )
event = {
currentScope: m {$id: 2, $$childTail: m, $$childHead: m, $$prevSibling: null,
$$nextSibling: null, …}
defaultPrevented: false
name: "$routeChangeStart"
preventDefault: ƒ ()
targetScope: m {$id: 2, $$childTail: m, $$childHead: m, $$prevSibling: null,
$$nextSibling: null, …}
}
(targetScope==currentScope) 为真
该项目还使用 Kendo 和 JQuery
我确实意识到我不能期待任何具体的答案,但欢迎任何建议。
我应该在哪里寻找?
解决方案
我必须做的是检查调试器中的调用堆栈在断点处停止
$rootScope.$on('$routeChangeStart' ...
pathParams 为空,因为路由无效。
推荐阅读
- kotlin - kotlin 中的国际象棋 BitBoards。哪种数据类型?
- android - 为什么我的布局在小屏幕上不能很好地填充?
- node.js - 运行 launch.json 配置时找不到模块“/Applications/Visual”
- reactjs - 为什么更新我的 React 组件的状态会扰乱迭代?
- android - 高度大于屏幕时Android TextInputLayout写入焦点问题
- sql - 根据表的值选择加权随机行
- python - pyqt5 无法将边框应用于无框窗口
- highcharts - Highcharts - 导出甘特图不显示用户以前的交互
- mysql - Puppetlabs MySQL 无法安装以前版本的 MySQL
- r - 如何使用 Geom_Area (GGplot) 制作正方形图