Является ли ng-For асинхронным? - PullRequest
0 голосов
/ 18 октября 2018
<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 Ответ

0 голосов
/ 18 октября 2018

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

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

здесь

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

...