Angular.js停止执行(可能是一般的javascript错误)

时间:2014-01-29 15:09:54

标签: javascript angularjs

我开发了一个门户网站,用户可以登录,管理他们的帐户,等等。从技术上讲,它是在Tomcat上运行的JSP / Servlet应用程序,将页面作为模板提供。每个站点都有一个带有控制器等的角度应用程序,并从JSON-Service(Spring MVC)加载数据。它不是经典的“单页应用程序”,而是“每个服务的单页”应用程序(每个页面都有自己的角度应用程序,包含子视图,指令等)。

这一切都很有效,但我不时遇到一个奇怪的错误,javascript执行似乎完全停止了(见截图http://i.stack.imgur.com/EF28q.png)。绿色ajax-loader应该通过角度表达式隐藏,你会看到breadcumb导航和内容中的花括号,成功和错误消息都会出现,但是应该隐藏。

经过几个小时的调试后我发现:

  • 当javascript文件缩小时,错误只会令人沮丧(我有一个运行未压缩和单个javascript文件的本地tomcat)
  • 绝对没有console.log左右(我严格使用$ log.info)
  • 控制台
  • 中没有javascript错误
  • 在Firefox
  • 中收到此错误非常困难
  • 当用户快速切换网站(整页刷新)时发生
  • 切换兼容模式/文档模式时,它出现在Internet Explorer 10中

我遵循了Internet Explorer的角度指南,因此我使用data- *等对所有指令进行了前缀,并且我遵循了“关于缩小的注意事项”(http://docs.angularjs.org/tutorial/step_05),因此我的角度控制器/服务/指令遵循括号表示法:app.controller('Ctrl',['$ scope','...',函数($ scope,...){}]);

非常感谢任何帮助

弗洛里安

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

App.controller('Ctrl', ['$scope', '$http', ...... ,
  function ($scope, $http, ......) {

}]);

你需要用这种方法来避免$ scope,$ http,...参数被压缩

答案 1 :(得分:0)

似乎角度执行甚至还没有开始。由于错误的零星性质,我会考虑DOM的一些时间问题。您是否使用RequireJS进行异步脚本加载?