angular - 由于未及时设置变量而导致的未定义值
问题描述
我有一个问题,即没有及时设置变量。在变量之前设置了一个标题,该变量指示要显示哪些标题元素以及不显示哪些正在被实例化。这是我的代码
isDisabledCorporates(): boolean {
if (this.userRole == 'HR Admin' || 'HR Recruiter' || 'HR Manager' || 'Candidate' || 'Operations administrator' || 'Internal Account Manager') {
return true;
} else {
return false;
}
}
<button class="nav-link-btn" [routerLink]="['/corporate/dashboard']" *ngIf="isDisabledCorporates()"> Corporates </button>
this.userRole 存储在 localstorage 中,但没有及时设置,因此函数在返回 true 之前返回 false
我从服务中获取 userRole 值
ngOnInit() {
this._userService.getCurrentUserProfileData()
.subscribe((user) => {
this.userRole = user;
}
);
}
我的问题是如何确保在放置 html 之前设置了 userRole,以便在实际角色值存在之前我不会得到 undefined
解决方案
首先,您的 if 语句是错误的。您需要检查每个语句:
isDisabledCorporates(): boolean {
if (
this.userRole == 'HR Admin' ||
this.userRole == 'HR Recruiter' ||
this.userRole == 'HR Manager' ||
this.userRole == 'Candidate' ||
this.userRole == 'Operations administrator' ||
this.userRole =='Internal Account Manager') {
return true;
} else {
return false;
}
}
我在 stackblitz 上创建了一个小型工作示例,看看:https ://stackblitz.com/edit/angular-f8cvor 您可以更改服务提供的 observable 的返回值以查看结果的变化。
推荐阅读
- javascript - Google Scripts/HTML/JavaScript Upload File to Folder 错误参数不能为空:blob
- java - 不能在再保证请求中将 Json 数组作为正文传递 - java.lang.IllegalStateException:不是 JSON 对象
- arrays - Hackerrank 上的数组操作
- java - Java - 访问 JSON 元素 (llegalFormatConversionException: d !=java.lang.String)
- mongodb - MongoDB在多个子文档中搜索多个字段
- python - 在张量流中用完 VRAM
- flutter - 颤振错误“方法'toDouble'在null上被调用”
- r - 将数据框中的每个四行系列折叠成一个向量,覆盖缺失值
- node.js - 在 WSL2 上访问 windows MongoDB 不起作用
- google-api - google drive V3 文件列表 api 未返回 lastModifyingUser 结构中的电子邮件地址字段