angular - 错误类型错误:无法读取未定义的属性“焦点”
问题描述
*ngIf="pageNumber==3"
为什么我在重定向到另一个页面时以及在重定向之后重定向之前一直收到此错误“TypeError:无法读取未定义的属性'焦点'” *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
?
解决方案
从您上面提供的有限代码示例中,如果您的问题,我猜如下。但还需要更多的确认。
@Viewchild 的目标是您在 DOM 中的引用。如果您使用 *ngIf 隐藏包含您在 ViewChild 中定位的组件的部分,您将无法访问它!
这是因为 *ngIf 会主动从 DOM 中移除元素,而不是简单地隐藏它。你可以用它[hidden]
来避免这种情况。
[hidden]='pageNumber !==2'
- 例如
推荐阅读
- ios - 在视图控制器之间传递数据而没有 segues
- java - 试图制作一个类的对象,其绝对路径只知道
- python - 如何在使用 CNN 提取特征的同时使用 SVM 进行分类?
- python - 在 RedHat/CentOS 7 上使用 Python3 实现 Ansible(python3-dnf 问题)
- c# - 在 WPF 中使用 webview 加载本地视频会使其锁定
- reactjs - 反应错误:看起来您正在将几个商店增强器传递给 createStore()
- python - 从子类对象访问超类成员的 Python 方法
- python - 如何获取 mongoDB 项目的 json 数组?(ObjectID 不可序列化)
- java - 正则表达式匹配在第 1 组中出错
- c++ - 如何授予对 vscode 的正确访问权限,以便在我运行 c++ 代码时它不会每次都要求访问文档?