路由器导航导致信息消失

时间:2019-05-27 12:56:15

标签: angular routing angular2-routing angular-routing

因此,我在页面上有一个<p-table>,其中显示“用户”,其全名,状态和用于更改状态的按钮。

我有三个按钮:“接受”,“拒绝”和“模棱两可”。每个按钮都具有如下功能:

onAcceptUser(user: UserModel) {
    const data = Utils.cloneObject(user, UserModel);

    data.status = UserStatusEnum.Accept;

    this.userService.userStatusUpdate(data).subscribe(c => {
      user.status = data.status
    });
}

单击一行时,将显示对应用户的信息(该信息显示在表另一侧的同一页上),为此,我使用router.navigate()(注入了路由器)。

onSelectUser(event) {
    const user = event.data.user;

    let url = ['user-reports/user-list', this.userListId, 'user', user.userId];

    this.router.navigate(url);
}

问题:

当我更改用户状态时,可能会发生两种情况。

  1. 一切都会按计划进行。
  2. 一切都会按计划进行,但是有关用户的所有信息将在视觉上消失。

发生第二种选择时,这对我来说是模糊的:

  • 如果我随后选择另一个用户,则会显示最后一个选择的用户,并且出现错误: enter image description here

  • 当我仅选择,然后取消选择该行,然后选择其他行时,也会发生同样的事情。 p>

我不知道发生了什么,另外一些回答说路由存在问题,但是我认为这很好:

{
    path: 'user-list/:listid',
    component: ViewUserListComponent,
    children: [
      {
        path: 'user/:id',
        component: UserViewEditComponent
      }
    ]
 }

问题:

为什么会发生此错误?!

我该怎么办?!

2 个答案:

答案 0 :(得分:1)

您可能会问到什么解决了我的问题?!​​

我将(onRowUnselect)事件添加到<p-table>,在其中清除了Url参数和voilà

答案 1 :(得分:0)

您介意添加html以便让我查看整个图片吗?