我有一个ng-repeat,循环遍历一个promise返回的元素。发生了两件奇怪的事情。 1.虽然我可以看到承诺返回单个元素,但我看到一个元素呈现给HTML但在控制台中我看到4条消息暗示该函数被调用了4次。 2)每隔30秒左右看起来ng-repeat再次初始化,因为我看到相同的console.log消息每30秒出现4次。
<ion-item cache-view="true" class="item-avatar item-icon-right" style="min-height:60px;" ng-repeat="crR in currentR" type="item-text-wrap" href="#/tab/rLater/{{crR.bid}}">
<div>
<img id="crR_IconImage" style='margin:0px 8px 0px 0px;float:left;max-width:40px;height:auto;' ng-src="{{crR.fullLogo}}">
<h3>{{crR.pDate}} @ {{crR.pTime}} (${{crR.quoted}})</h3>
<p style="padding-top:5px;font-size:12px;">{{crR.vName}}, Status:
<span>{{getConfName(crR.confirmed)}}</span>
<i id="customIcon" class="icon ion-chevron-right icon-accessory"></i>
</div>
</ion-item>
在我的应用HTML视图中,我确实看到列出了1个项目...但是,{{getConfName(crR.confirmed)}}
是一个定义为的函数:
$scope.getConfName = function(value) {
console.log("caller is " + arguments.callee.toString());
console.log("value: " +value) ; // <-- this prints 4 times every 30 seconds
if (value == 0) {
return "Not Confirmed" ;
} else if (value == 1) {
return "Confirmed" ;
} else if (value == 2) {
return "Cancelled by Vendor" ;
} else if (value == 3) {
return "Cancelled by user" ;
} else if (value == 4) {
return "Modified by Vendor" ;
} else if (value == 5) {
return "Modified by User" ;
}
}
在console.log中,我看到value = 0
打印了四次......然后每30秒,value
再打印四次。我尝试添加:
console.log("caller is " + arguments.callee.caller.toString());
但是caller
的错误未定义。如果我这样做:
console.log("caller is " + arguments.callee.toString());
我看到上面的功能打印到控制台上:
caller is function (value) {
console.log("caller is " + arguments.callee.toString());
console.log("value: " +value) ;
if (value == 0) {
return "Not Confirmed" ;
} else if (value == 1) {
return "Confirmed" ;
} else if (value == 2) {
return "Cancelled by Vendor" ;
} else if (value == 3) {
return "Cancelled by user" ;
} else if (value == 4) {
return "Modified by Vendor" ;
} else if (value == 5) {
return "Modified by User" ;
}
}
我不能为我的生活弄清楚为什么value = 0
每隔30秒不断地打印到控制台......每次都会打印它,它会打印四次。另一件我不认为应该与之相关的事情是,我每隔30秒就会在该应用屏幕上打印我的AdMob广告......当广告更改console.log value
消息时。它与上述功能类似,是在投放新广告时触发的一些功能。这对我没有意义。