繁体   English   中英

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

[英]Angular.js stops execution (probably general javascript error)

我开发了一个Web门户,用户可以在其中登录,管理其帐户资料等。 从技术上讲,它是在Tomcat上运行的JSP / Servlet应用程序,将页面作为模板交付。 每个站点都有一个带有Controllers等的角度应用程序,并从JSON-Service(Spring MVC)加载数据。 它不是传统的“单页应用程序”,而是“每项服务单页”应用程序(每个页面都有它自己的带有副视图,指令等的角度应用程序)

一切都很好,但有时我会遇到一个奇怪的错误,即javascript执行似乎完全停止了(请参阅屏幕快照http://i.stack.imgur.com/EF28q.png )。 绿色的Ajax加载程序应通过角度表达式隐藏,您会看到面包导航和内容中的花括号,成功消息和错误消息同时出现,但应该隐藏。

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

  • 仅当缩小javascript文件时错误才会出现(我的本地tomcat运行未压缩的单个javascript文件)
  • 绝对没有console.log左右(我严格使用$ log.info代替)
  • 控制台中没有javascript错误
  • 在Firefox中很难得到此错误
  • 当用户快速切换站点(刷新整个页面)时发生
  • 切换兼容模式/文档模式时,它会在Internet Explorer 10中发生

我遵循了Internet Explorer的角度指南,因此在所有指令前都加上了data- *等,然后遵循“缩小提示”( http://docs.angularjs.org/tutorial/step_05 ),因此我的角度控制器/ services / directives遵循方括号表示法:app.controller('Ctrl',['$ scope','...',function($ scope,...){}]);

任何帮助将不胜感激

弗洛里安

您可以尝试以下方法:

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

}]);

您需要使用这种方式来避免$ scope,$ http等参数被压缩

似乎角度执行尚未开始。 由于错误的偶发性,我将考虑DOM的一些时序问题。 您是否使用RequireJS进行异步脚本加载?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM