このjsonをマットテーブルに接続しています
const pendingUsers: pendingUsersData [] = [{
'autoReLogin': false,
'rolesAccess': [{
'requestReason': 'because i need it',
'status': 'pending',
'role': 'API_ApplicationDeveloper'
}],
'userId': 'f123132',
'emailId': 'me@google.com',
'firstName': 'Me',
'lastName': 'ME',
'country': 'IN'
}, {
'autoReLogin': false,
'rolesAccess': [{
'requestReason': ' ',
'status': 'pending',
'role': 'API_ApplicationDeveloper'
}],
'userId': 'F12455',
'emailId': 'ak@gmail.com',
'firstName': 'AKl',
'lastName': 'M',
'country': 'IN'
}, {
'autoReLogin': false,
'rolesAccess': [{
'requestReason': ' ',
'status': 'pending',
'role': 'API_ApplicationDeveloper'
}],
'userId': 'F14123',
'emailId': 'pg@gmail.com',
'firstName': 'Prs',
'lastName': 'Gpta',
'country': 'IN'
}, {
'autoReLogin': false,
'rolesAccess': [{
'requestReason': 'exception_response_reason',
'status': 'pending',
'role': 'API_ApplicationDeveloper'
}],
'userId': 'F99349',
'emailId': 'ank.sh@gmail.com',
'firstName': 'Ank',
'lastName': 'Shy',
'country': 'IN'
}];
次のコードを使用して列を並べ替えています
ngAfterViewInit() {
this.pendingUsersDataSource.paginator = this.paginator.toArray()[0];
this.pendingUsersDataSource.sort = this.sort.toArray()[0];
this.pendingUsersDataSource.sortingDataAccessor = (item, property) => {
switch (property) {
case 'rolesAccess[0].requestReason': return item.rolesAccess[0].requestReason;
default: return item[property];
}
};
}
ソートは、rolesAccess に関連付けられているものを除くすべての列で正常に機能しているようです。requestReason と role に基づいてソートすることもできます。この時点では、ソートは行われていないようです。