当我重定向到另一个页面时以及重定向*ngIf="pageNumber==3"
之后重定向*ngIf="pageNumber==2"
之前,为什么为什么不断收到此错误“ TypeError:无法读取未定义的属性'focus'”?
这是我的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
一起使用?
答案 0 :(得分:0)
从您在上面提供的有限代码示例中,如果您遇到问题,我猜测以下内容。但是还需要更多确认。
@Viewchild在DOM中定位您的引用。如果使用* ngIf在ViewChild中隐藏包含您要定位的组件的零件,那么您将无法使用它!
这是因为* ng如果主动从DOM中删除该元素,则不会简单地将其隐藏。您可以使用[hidden]
来避免这种情况。
[hidden]='pageNumber !==2'
-例如