如何在userscomponent中处理getallusers vs getuser?

时间:2016-11-07 18:27:37

标签: javascript angular

我有一个UserComponent,我想让它显示一个基于userId查询字符串的用户,如下所示:localhost:3000 / users?userId = 1

否则,如果网址没有userId qs param,我只想显示所有用户:localhost:3000 / users

在下面的代码中,即使没有qs参数,代码的第一部分仍然会运行:

  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(); 
  }

代码的第一部分最终使用未定义的userId为getUser调用其余的svc:http://localhost:4000/users/undefined

我如何重新构建此代码以适应这种情况?

1 个答案:

答案 0 :(得分:0)

我相信,您需要检查是否有' userId'在您的订阅回调部分

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

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