Я пытаюсь получить путь вокруг IE получать изображения из кэша при использовании AngularJSугловой js '?' в нг-Src вызывает бесконечный цикл
У меня есть этот следующий код
<img ng-src="./individuals/image/{{team._id}}/{{member._id}}{{getRandom()}}" >
В контроллере
$scope.getRandom=function(){
return "?ran="+new Date().getTime()+"";
}
Когда я бегу, я получаю эту ошибку
Error: 10 $digest() iterations reached. Aborting! Watchers fired in the last 5 iterations: [["fn: function (a){\n\"use strict\";\ntry{for(var b=0,c=q,g;b<c;b++){if(typeof(g=l[b])==\"function\")g=g(a),g==null||g==s?g=\"\":typeof g!=\"string\"&&(g=da(g));B[b]=g}return B.join(\"\")}catch(f){d(Error(\"Error while interpolating: \"+e+\"\\n\"+f.toString()))}}; newVal: \"./individuals/image/51c209ead8b8d863ad69de97/51c209ead8b8d863ad69de65?ran=1371757784485\"; oldVal: \"./individuals/image/51c209ead8b8d863ad69de97/51c209ead8b8d863ad69de65?ran=1371757784457\"","fn: function (a){\n\"use strict\";\ntry{for(var b=0,c=q,g;b<c;b++){if(typeof(g=l[b])==\"function\")g=g(a),g==null||g==s?g=\"\":typeof g!=\"string\"&&(g=da(g));B[b]=g}return B.join(\"\")}catch(f){d(Error(\"Error while interpolating: \"+e+\"\\n\"+f.toString()))}}; newVal: \"./individuals/image/51c209ead8b8d863ad69de97/51c209ead8b8d863ad69dec9?ran=1371757784487\"; oldVal: \"./individuals/image/51c209ead8b8d863ad69de97/51c209ead8b8d863ad69dec9?ran=1371757784459\"","fn: function (a){\n\"use strict\";\ntry{for(var b=0,c=q,g;b<c;b++){if(typeof(g=l[b])==\"function\")g=g(a),g==null||g==s?g=\"\":typeof g!=\"string\"&&(g=da(g));B[b]=g}return B.join(\"\")}catch(f){d(Error(\"Error while interpolating: \"+e+\"\\n\"+f.toString()))}}; newVal: \"./individuals/image/51c209ead8b8d863ad6
Если я удалю {{getRandom()}}
, он отлично работает.
Пожалуйста, помогите .. Заранее спасибо
UPDATE: Здесь Вы можете найти изменения в контроллер, основной вопрос. Благодаря ответ от Ливиу Т.
$scope.lastMillis = new Date().getTime();
$scope.getRandom=function(){
var curMillis = new Date().getTime();
if (curMillis-$scope.lastMillis>5000) {
$scope.lastMillis = curMillis;
}
return "?ran="+$scope.lastMillis;
}
какой версии IE вы используете? Это работает, по крайней мере, в IE8 + - http://jsfiddle.net/sh0ber/hakGL/ – sh0ber
Я пробовал в IE9 и Firefox. Это не работает в обоих. У скрипки есть абсолютный url. Я не знаю, проблема в том, что я использую url с './' – Srijit
Это не проблема, к сожалению. Можете ли вы опубликовать демоверсию, воспроизводящую проблему? – sh0ber