Angular Ionic @ViewChild теряет ссылку - PullRequest
0 голосов
/ 29 июня 2018

Проблема проста

У меня есть такая ссылка

@ViewChild('myElement') myElementVar : SomeClass;

И элемент, который я обновляю, выглядит следующим образом

<element #myElement *ngIf="someBoolean"></element>

И когда someBoolean становится ложным, myElementVar становится неопределенным, Я знаю, что это потому, что *ngIf полностью удаляет элемент из DOM, а затем теряет ссылку, потому что он не существует больше.

Что я хочу знать, так это , если возможно переназначить
myElementVar на #myElement
, когда someBoolean снова станет истинным.

1 Ответ

0 голосов
/ 29 июня 2018

Через использование ChangeDetectorRef.

В следующем примере: вы нажимаете и активируете функцию переключения, а затем функция удаляет первую строку со ссылкой:

<h1 #myElement *ngIf="someBool">Hello World.</h1>

Тогда, когда вы переключаетесь снова, вы повторно назначаете элемент, на который ссылаетесь.

Ссылка: https://stackblitz.com/edit/angular-roh6g8?file=src%2Fapp%2Fapp.component.ts

Обратите внимание, , что вы также можете сделать это без ChangeDetectorRef, если вы все еще убедитесь, что у вас есть условие, чтобы проверить, существует ли ваша ссылка или нет, и Angular автоматически (внутренне) обработает это для вас.

...