代码之家  ›  专栏  ›  技术社区  ›  Rahul Unnikrishnan

在应用程序中调用方法。组成部分角6中另一个组件的ts

  •  0
  • Rahul Unnikrishnan  · 技术社区  · 6 年前

    这是我的应用程序。组成部分ts

        @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
      title = 'Test App';
      constructor(private authService:AuthService){}
      public userName;
      public permission;
      public jwtHelper = new JwtHelperService();
      public menuItems=[];
    
     setMenu(){
        if(this.authService.loggedIn()){
            const token = localStorage.getItem('token');
            const decodedToken = this.jwtHelper.decodeToken(token);
            this.userName = decodedToken.userName;
            this.hospitalName = decodedToken.hospitalName;
            this.permission = decodedToken.permission;
            if(this.permission == 'admin'){
                this.menuItems = this.adminMenuItems;
            }
            else{
                this.menuItems = this.nurseMenuItems;
            }
        }
    
      }
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   user184994    6 年前

    在身份验证服务中,创建一个可观察对象,该对象在每次登录状态更改时发出:

    import { Subject, Observable } from 'rxjs';     
    
    private _statusChange$ = new Subject<boolean>();
    private loginStatus$ = this._statusChange$.asObservable();
    
    // Whenever the status changes:
    this._statusChange$.next(newIsLoggedInValue);
    

    this.authService.loginStatus$.subscribe((isLoggedIn) => {
        if(isLoggedIn()){
            const token = localStorage.getItem('token');
            const decodedToken = this.jwtHelper.decodeToken(token);
            this.userName = decodedToken.userName;
            this.hospitalName = decodedToken.hospitalName;
            this.permission = decodedToken.permission;
            if(this.permission == 'admin'){
                this.menuItems = this.adminMenuItems;
            } else {
                this.menuItems = this.nurseMenuItems;
            }
        }
    })
    

    这样,它将在每次登录状态更改时触发

        2
  •  0
  •   Rahul    6 年前

    打电话就行了 ngOnInit() 方法,该方法在加载组件时触发

    export class AppComponent implements OnInit {
      ngOnInit() {
        this.setMenu();
        }
      }
    

    确保您导入- import { OnInit } from '@angular/core';