טייפסקריפט - *ngFor מריץ לולאה אינסופית באנגלר2


אני מנסה להציג את מאפייני האובייקט באמצעות מפתחות ב-Angular2 באמצעות הקוד שלמטה:

<ul>
    <li *ngFor="let element of componentModel | keys;let i=index">
      {{element.key}}--{{element.value}}  // 1---Bhushan...loaded only once
      <span  *ngIf="element">{{ loadProperty(i,element) }}</span>
    </li>
</ul>

אבל אני מתמודד עם בעיה כאן. הפלט בדפדפן נטען רק פעם אחת. אבל קריאת המתודה כלומר loadProperty(i,element) רצה בלולאה אינסופית.

loadProperty(i:number,element:any){       
    console.log(element.key+'========'+element.value);
    console.log(element);      
}

מתכוון לפלט בדפדפן

(1---בזושאן)

מציגים רק פעם אחת אך בקונסולה זה רץ ללא סוף כמו למטה:

אני רוצה לקרוא למתודה הזו פעם אחת בלבד בכל איטרציה.

יש לכם משוב?

תשובה #1

זה פשוט זיהוי שינויים של Angular2 בעבודה שקורא ל-loadProperty(i,element) שוב ושוב בכל מחזור של זיהוי שינויים.

קריאה לפונקציות מהתבנית אינה מומלצת מכיוון שהן נקראות לעיתים קרובות מאוד. במקום זאת, עליך לאחסן את התוצאה במאפיין ולבצע קישור למאפיין זה.