ОШИБКА TypeError: Невозможно прочитать свойство 'focus' из undefined - PullRequest
0 голосов
/ 04 октября 2019

Почему я продолжаю получать эту ошибку «Ошибка типа: невозможно прочитать свойство 'focus' of undefined", когда я перенаправляю на другую страницу и перед перенаправлением *ngIf="pageNumber==3" после перенаправления *ngIf="pageNumber==2"?

это мой HTML-файл

<mat-form-field>
    <input #employeeNameInput="matInput" (focus)="form.controls.employeeName.focused = true" matInput formControlName="employeeName">
</mat-form-field>

<p><span [routerLink]="['/prasymas-atleisti-is-darbo', 2]" class="top-space"
         [innerHTML]="form.controls.employeeName.value" (click)="setFocus(employeeNameInput)"
         [ngClass]="{'focused': form.controls.employeeName.focused == true }"
         (clickElsewhere)="clickOff('employeeName')" [typeInput]="employeeNameInput"></span>
</p>

это мой файл ts

@ViewChild('employeeNameInput') employeeNameInput: MatFormField

setFocus(input: MatInput) {
    input.focus();
}

проблема в том, что *ngIf="pageNumber==3" элемент скрыт, а когда элемент *ngIf="pageNumber==2" появляется и не скрывается, как сделатькоторые работают с *ngIf?

1 Ответ

0 голосов
/ 04 октября 2019

Из приведенного выше примера ограниченного кода, я думаю, что если ваша проблема, тоНо для подтверждения потребуется больше.

@ Viewchild нацеливается на вашу ссылку в DOM. Если вы используете * ngIf, чтобы скрыть часть, содержащую компонент, на который вы нацелены, в ViewChild, вы не сможете получить к нему доступ!

Это потому, что * ngIf активно удаляет элемент из DOM, а не просто скрывает его. Вы можете использовать [hidden], чтобы избежать этого.

[hidden]='pageNumber !==2' - например

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...