angular - 错误类型错误:“this.authenticatedUser 未定义”
问题描述
对不起,我是法国人.. 这是我的问题:
应用组件.ts
import { Component, OnInit, HostListener } from '@angular/core';
import { environment } from '../environments/environment';
import { AuthOidcService, AuthUser } from '@cddng/auth-oidc-apim';
import { AuthService } from './service/auth.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
appName: string;
authenticatedUser: AuthUser;
constructor(private auth: AuthService, private oidcAuth: AuthOidcService) {
this.appName = environment.application_name;
this.oidcAuth.init(environment.auth_oidc_config);
}
ngOnInit() {
this.oidcAuth.login();
this.oidcAuth.oidcSecurityService.getIsAuthorized().subscribe((authorized: boolean) => {
if (authorized) {
this.authenticatedUser = this.oidcAuth.getAuthenticatedUserFromJwt();
}
});
this.auth.idRh = this.authenticatedUser.idRh;
this.auth.role = this.authenticatedUser.roles;
console.log("*******************************************");
console.log("idrh => " + this.auth.idRh);
console.log("Roles => " + this.auth.role);
console.log("isAdmin => " + this.auth.isAdmin);
console.log("isExpert => " + this.auth.isExpert);
console.log("isConsult => " + this.auth.isConsultation);
console.log("*******************************************");
}
@HostListener('window:UserDisconnected') userDisconnected() {
this.oidcAuth.corpHeaderLogout();
}
}
而控制台上的这个错误:
ERROR TypeError: "this.authenticatedUser is undefined"
当我刷新页面时,没关系,但不是第一次
我认为这是异步的问题,但我没有解决方案
谢谢您的回答
解决方案
您需要在 中移动以下行subscribe
:
this.auth.idRh = this.authenticatedUser.idRh;
this.auth.role = this.authenticatedUser.roles;
由于订阅是异步的,所以需要等待返回值才能使用。
推荐阅读
- java - 安全连接 Java Socket
- regex - 如何处理 coq 证明(和其他一般 coq 问题)中的 EmptySet 正则表达式构造函数?
- visual-studio - Visual Basics-当 if 语句完成时,它似乎在重复自己并说另一个玩家赢了。这使得其他玩家的生命值减少 30 点
- javascript - 如何在javascript中杀死并重新启动递归函数
- rest - REST API - 设计一个 POST API - 如果它为同一个用户多次调用
- django - django 在这种情况下如何使用Q和过滤related_name?
- c - 来自 C 的指针从内存中删除
- goland - Goland - 从 JSON 模式生成类型定义
- laravel - Laravel 中的驼峰格式表名
- assembly - x86 程序集:当数字末尾包含 0 时,将数字拆分为数字时出现问题