Угловая переменная 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

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

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