我有以下代码:
<blockquote class='mt20'>
<p><span>“</span><span>{{iq.quote}}</span><span>”</span></p>
<footer><cite class="dark-grey">{{iq.author}}</cite></footer>
</blockquote>
由于某种原因,这导致IE8崩溃。我做了很多调试,发现当iq对象只包含引号时:
{quote:"some quote"}
浏览器没有崩溃。它只与引用和作者崩溃。
我使用特殊功能来获取数据。它看起来像:
this.get = function(){
var arr = {};
if(!arr.length){
$http.get('url').success(function(data){
$.extend(arr, data);
});
}
return arr;
}
我使用它是因为对象是自动绑定的,所以我不必看它。当视图尝试更新时,似乎会在数据扩展到对象时发生崩溃。有什么想法吗?
答案 0 :(得分:0)
我能够通过使用{{}}更改内容绑定到ng-bind来解决此问题。
<blockquote>
<p><span>“</span><span ng-bind="iq.quote"></span><span>”</span></p>
<footer><cite ng-bind="iq.author"></cite></footer>
</blockquote>
我假设HTML5页脚元素与{{}}内容绑定和动态更新相结合导致了IE8崩溃的内存泄漏,但我无法证明这一点。我知道当内容设置而不是更改时(比如使用$ http.get而不是我的方法会发生什么),浏览器不会崩溃。我也在使用:
var obj = {}
和:
delete obj.key
我将其更改为:
var obj = new Object()
基于这篇文章:https://markfeimer.wordpress.com/2014/05/23/internet-explorer-8-javascript-delete-keyword-bug/