2016-11-07 26 views
0

我有一個UserComponent,我希望它基於用戶ID查詢字符串PARAM這樣顯示用戶:本地主機:3000 /用戶用戶id = 1如何處理getallusers vs用戶組件中的getuser?

否則,如果該URL沒有用戶標識QS PARAM我只是要顯示所有用戶:本地主機:3000 /用戶

在代碼的第一部分,我下面的代碼還是會被運行,即便是沒有QS PARAM:

ngOnInit(): void { 

    // subscribe to router event 
    this.subscription = this.activatedRoute.queryParams.subscribe(
     (param: any) => { 
     let userId = param['userId']; 
     //console.log(userId); 
     this.getUser(userId); 
     }); 

    this.getUsers(); 
    } 

代碼的第一部分最後調用其餘的svc getUser與未定義的userId:http://localhost:4000/users/undefined

我該如何重構此代碼才能適應這種情況?

回答

0

我相信,你需要檢查是否有「用戶id」在您的訂閱回調部分

this.subscription = this.activatedRoute.queryParams.subscribe(
     (param: any) => { 
     let userId = param['userId']; 
     //console.log(userId); 

     userId ? this.getUser(userId) : this.getUsers(); 
     });