奇怪的,孤立的错误" $ compile:tpload"

时间:2014-09-02 09:13:53

标签: angularjs angularjs-directive

我们的生产日志文件中存在奇怪的,零星的JavaScript错误消息(后端会记录JavaScript错误):

未捕获错误:[$ compile:tpload] http://errors.angularjs.org/1.2.16/ $ compile / tpload?p0 = modules%2Fsome%2valid-directive-path.tpl.html

只有指令才会出现错误。我无法在本地重现错误。指令的templateUrl都是有效的。

我想到的唯一可能的情况是用户在页面加载时按下浏览器中的取消/停止按钮(然后我能够重现错误)。

有没有人有其他想法或解释?甚至是解决方案: - )

干杯 迈克尔

2 个答案:

答案 0 :(得分:1)

我们解决了这样的问题:

由于我们使用grunt ngTemplate插件(https://www.npmjs.com/package/grunt-angular-templates)使用$ templateCache缓存我们的HTML模板,因此我们不再遇到上述问题。

答案 1 :(得分:1)

出于兴趣,我能够重现这个问题。通过向angular I添加日志记录,我确定当模板加载失败时,状态为0,这使我认为请求实际上已被取消。我们看到没有服务器端错误这一事实为这一理论提供了支持。

如果我模拟一个不支持html5路由的设备,然后在路由末尾添加一个任意查询字符串,它会导致无限的摘要循环,最后整个页面会重新加载几次。这反过来导致未完成的模板请求被取消,导致我在日志中看到的错误。

所以,至少对我来说,这实际上与加载模板无关,它只是一个有角度的错误(希望将在角度1.3.8中修复)