После обновления моего проекта до Angular 9. Я изменил используемые компоненты из Priment с p-dataTable на p-Table, как указано в документах Primeng. К сожалению, сейчас моя страница не отображается. В HTML
<p-table [value]="popup.assignedUser.selectedList" [scrollable]="true"
эта строка говорит, что заданный пользователь не определен, но в более ранней версии со старой таблицей данных Primeng и angular 6 это работало нормально. Что мне нужно изменить, чтобы код работал так же, как и раньше, в таблице Primeng? В ts для этого html я объявил
@ViewChild('popup', {static: false}) popup: UsersPopupComponent;
всплывающий компонент выглядит так:
@ViewChild('userModal') userModal;
@ViewChild('assignedUser') assignedUser: AssignedUserTableComponent;
@ViewChild('assignUser') assignUser;
type = globals.viewType;
reportView = false;
constructor(private reportsComponent: ReportsComponent) {
}
openModal(): void {
this.reportView = true;
this.userModal.nativeElement.classList.add('open-modal');
}
closeModal() {
this.userModal.nativeElement.classList.remove('open-modal');
}
refreshTree() {
this.assignUser.refreshTree(this.assignUser.treeSelect);
}
gatherData() {
this.reportsComponent.gatherUserIds();
}
deleteList() {
this.assignedUser.selectedList = [];
}
и selectedList из заданного пользователя устанавливается в другом компоненте AssignedUserTable
addUser(inputList) {
if (this.typeService === this.typeInput) {
inputList.forEach(il => (
!this.selectedList.find(sl => sl.userId === il.userId)) ?
this.selectedList.push(il) : {});
this.emitUser();
this.selectedList.forEach(user => {
user._fullName = this.userService.getUserFullNameFromCachedUsers(user.userId);
});
this.selectedList.sort((a, b) =>
a._fullName.substr(a._fullName.indexOf(' ') + 1).localeCompare(b._fullName.substr(b._fullName.indexOf(' ') + 1)));
}
}