Является ли ng-For асинхронным?

<ng-container *ngFor="let child of rootToken.getChildren()">
<ng-container *ngIf="function1(child)">
{{function2(child)}}
</ng-container>
</ng-container>


/*******function1**********/
function1(child){
console.log("in funciton1")
return true;
}
/*******function2**********/
function2(child){
console.log("in function2");
console.log("child",child.getName());
}

/*OUTPUT*/
in funciton1
in function2
child a
in funciton1
in function2
child b
in funciton1
in function2
child c

in funciton1
in function2
child a
in funciton1
in function2
child b
in funciton1
in function2
child c

Из приведенного выше фрагмента кода HTML я проверяю условие *ngIf="function1(child)" и вызываю функцию2();. Но на выходе я вижу, что функция 2 () выполняется дважды. Может кто-нибудь, пожалуйста, объясните это?

1 ответ

При использовании angular и вызове функции из HTML, функция будет вызываться много раз, старайтесь избегать ее, вы можете использовать pipe, который будет выполняться только один раз

Вы можете прочитать об этом

Вот

об использовании трубы вместо йоиу можно прочитать здесь

Другие вопросы по тегам