Угловая переменная 6 или метод привязки в *ngIf
Есть ли разница между привязкой переменной и привязкой метода в шаблоне *ngIf.
Пример:
Случай 1:
<div *ngIf="myVar">ABC</div>
Случай 2:
<div *ngIf="myFunction()">ABC</div>
myFunction() : boolean {
if (cond1 && cond2 && cond3) {
return true;
} else {
return false;
}
}
Есть ли какое-то влияние на производительность?
Я пытаюсь использовать случай 2, получая диапазон Ошибка: Максимальный стек вызовов превышает.
Помоги мне в этом? Спасибо
3 ответа
Да, есть
Первый не будет иметь проблем с производительностью, так как вы будете напрямую проверять переменную, в то время как второй будет иметь, поскольку angular использует обнаружение изменений, и он срабатывает много раз
Когда вы вызываете функцию углового срабатывания, цикл обнаружения изменений каждый раз. лучше использовать свойство get
<div *ngIf="myvar">ABC</div>
get myvar() : boolean {
if (cond1 && cond2 && cond3) {
return true;
}
return false;
}
Что вы можете сделать, чтобы избежать проблем с производительностью, что вы можете сделать переменную класса
public myVar = cond1 && cond2 && cond3
а затем вы можете использовать его в первом варианте и поддерживать читабельность кода