我正在使用angular-meteor並希望在每個對象上執行一個函數。我試圖在視圖中的ng-repeat內運行這個函數,但是我得到了大量的函數調用,並且無法弄清楚原因。我試圖儘可能簡單地說明發生了什麼。ng-repeat迭代過多
constructor($scope, $reactive) {
'ngInject';
$reactive(this).attach($scope);
this.loaderCount = 0;
this.helpers({
loaders() {
return Loaders.find({isloader:true}, {sort: { name : 1 } })
}
});
這給了我26臺裝載機。我的函數只是加1計數每次函數調用時:
displayLoaderCount()
{
return ++this.loaderCount;
}
現在,在我看來,我循環通過每個加載器和調用函數。這應該在我的腦海裏給我26,而是我得到3836
<tr ng-repeat="loader in loaderExhaustion.loaders">
<td>{{loaderExhaustion.displayLoaderCount()}}</td>
誰能幫我解釋一下?理想情況下,我想循環模塊中的內容,但由於集合是異步的,因此當循環開始時,集合的長度爲0,因此我在視圖中進行了調用。
謝謝!
謝謝你,這是有道理的。基本上,我試圖做的是基於什麼是有些心計在每個對象中。例如,假設每個對象都有一個數字,那麼每個對象會遍歷所有數字?如果我在構造函數中這樣做,集合仍然是0,並且循環立即結束。我需要一種方法在所有裝載器(26)返回後調用它。對不起,這對我來說很困惑。 – enfrost
我不知道裝載機是什麼。如果它加載一些東西異步函數,你把它的26倍,我想它會返回一個承諾(或採取一個回調函數)上,您可以撥打'。然後(()=> this.loaderCount ++)' –