Итак, у меня есть <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);
}
Проблема:
Когда я изменяю статус моего пользователя, могут произойти две вещи.
- Все будет так, как запланировано.
- Все будет так, как запланировано, но вся информация о пользователе исчезнет визуально.
Когда появляется второй вариант, это то, где все становится размытым для меня:
Если я затем выберу другого пользователя, последний выбранный будет отображен , и я получу ошибку:
То же самое происходит, когда я просто выбираю , затем отменяю выбор строки и после этого выбираю строку прочее .
Я не знаю, что происходит, в некоторых других ответах говорилось, что что-то не так с маршрутизацией, но я думаю, что в моем случае это нормально:
{
path: 'user-list/:listid',
component: ViewUserListComponent,
children: [
{
path: 'user/:id',
component: UserViewEditComponent
}
]
}
Вопросов:
Почему происходит эта ошибка?!
Что я могу сделать?!
2 ответа
Что решило мою проблему, спросите вы?
Я добавил событие (onRowUnselect)
в <p-table>
, где я очистил параметры URL и вуаля .
Не могли бы вы добавить HTML, чтобы я мог посмотреть на всю картину?
Похожие вопросы
Новые вопросы
angular
Вопросы по Angular (не путать с AngularJS), веб-фреймворку от Google. Используйте этот тег для угловых вопросов, которые не относятся к конкретной версии. Для более старой веб-платформы AngularJS (1.x) используйте тег angularjs.