如何调试角度库错误?

时间:2015-10-19 14:22:52

标签: javascript angularjs dependency-injection angular-ui-router angular-ui

我在一个网站中使用Angular,我刚刚将angularangular-routeangular-ui-router升级为最新的bower版本。但是我突然在控制台中收到了这个错误:

TypeError: a.remove is not a function
    at Object.H.removeListener (main.js:7)
    at Object.b.module.service.a.removeEvents (angular-google-maps.min.js?version=2.2.1:5)
    at angular-google-maps.min.js?version=2.2.1:8
    at n.a.$get.n.$broadcast (angular.js:16311)
    at n.a.$get.n.$destroy (angular.js:15923)
    at j (angular-ui-router.min.js?version=0.2.15:7)
    at angular-ui-router.min.js?version=0.2.15:7
    at angular.js:7554
    at k (angular-ui-router.min.js?version=0.2.15:7)
    at angular-ui-router.min.js?version=0.2.15:7

现在的问题是,我不确定如何调试它。在上面的跟踪中,我看到两个库:angular-ui-routerangular-google-maps。我是否应该开始查看这些库的来源,或者是否有一些我在此跟踪中缺少的内容向我展示了如何解决这个问题?

欢迎所有提示!

[编辑] 正如@charlietfl的评论中所建议的那样,我检查了bower.json文件中angular-google-maps的依赖关系:

"dependencies": {
    "angular": "1.2 - 1.4",
    "angular-simple-logger": "~0.0.1",
    "lodash": ">=3.8.0"
},

目前我已经:

  • angular version 1.4.7
  • angular-simple-logger version 0.0.4
  • lodash version 3.10.1

仅此angular-simple-logger似乎已关闭。但我不确定从这里做什么。我应该将angular-simple-logger降级到版本0.0.1,我应该将"~0.0.1",更改为">=0.0.1",还是我还能做其他事情?

1 个答案:

答案 0 :(得分:1)

我看不到你的源代码,所以看起来它可能非常特定于你的应用程序。特别是对于(<p class='testing\d_class'><span>Lorem Ipsum )(.*?)( Lorem Lorem Lorem<\/span>) ,状态参数可能会破坏很多东西。

如果这是我的应用程序,我会先在Chrome调试器中打开这些设置。

enter image description here

然后我将运行代码并逐步执行,直到ui-router中抛出异常,因为它在堆栈跟踪中最远。

为了使事情易读,请点击这个方便的按钮:

Make things pretty button

它可能不是最快的解决方案,但它会为您提供进一步诊断问题所需的详细信息。