Angular 1组件延迟加载请求错误

时间:2017-12-12 04:00:05

标签: javascript angularjs

这个让我很难过,但如果有人以前处理过这个问题,可能是一个简单的开/关。我有一个使用一堆组件的角度1应用程序。当组件按角度加载时,我得到一个如下所示的网络请求:

http://localhost:5555/%7B[%7B%20'

当我解码时,我得到一个{[{ ',表示由于我的自定义括号,它出现了某种原因:

$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');

当我尝试解密请求启动器时,这个随机网络请求似乎来自组件延迟加载(我从未以任何方式触及)。

sample network request stack

更奇怪的是,有时这个请求会在没有响应的情况下成功完成200次,有时会被取消,显示红色错误。该错误不会显示为控制台错误,也不会以任何方式破坏页面。

我不知道为什么会这样,或者如何修复它,所以我对任何建议持开放态度。

编辑:添加有点复制我的设置的小提琴。不幸的是,我无法获得要复制的实际网络请求问题。 https://jsfiddle.net/runfaj/0retoa1m/

1 个答案:

答案 0 :(得分:0)

我完全意外地找到了解决方案。我在这个问题上遇到了几个月,但是当我最近更改了一个组件时,我发现网络请求已经改变,包括我的新更改。

它归结为<use>标记,如下所示:

<use xlink:href="{[{ '#icon-' + $ctrl.renderedName }]}"></use>

在研究原因时,stackoverflow post解释了修复,而angular doc表示某些标记对属性很挑剔,因此解决方法是将其更改为:

<use xlink:href="" ng-attr-xlink:href="{[{ '#icon-' + $ctrl.renderedName }]}"></use>

奇怪的是问题中的堆栈跟踪看起来像那样,因为xlink:href不应该调用任何类型的jquery / angular请求,因为它是本机浏览器查找。