Метод onInit директивы вызывается много раз, когда родительский элемент скрыт и снова показан - PullRequest
0 голосов
/ 11 сентября 2018
<div *ngIf="variable">
    <directive></directive>
</div>

В приведенном выше фрагменте кода (Angular 2) я изменяю переменную с true на false, и, следовательно, директива не будет отображаться, а затем, когда я пытаюсь снова установить для переменной значение true, вызывается onInit из директивы еще раз.

Я хочу, чтобы метод ngOnInit вызывался во время загрузки директивы только в первый раз.

Почему моя директива ngOnInit вызывается каждый раз, когда значение переменной меняется с false на ngOnInit true.

Любые предложения.

1 Ответ

0 голосов
/ 11 сентября 2018

Вместо использования *ngIf используйте [hidden]="variable".

Когда вы используете *ngIf, вы удаляете элемент из DOM, и как только вы снова переключаете его на true, он будет отображатьДиректива снова.

Кроме того, я рекомендую вам взглянуть на скрытый документ на возможные проблемы с CSS.

...