Я тестирую Material Table (mat-table) на Angular 7, вот странная проблема, с которой я столкнулся.
Отправьте запрос в jsonplaceholder за поддельные данные в users.service
export class UsersService {
API_BASE = 'https://jsonplaceholder.typicode.com/users';
constructor(private http: HttpClient) {}
getUsers(): Observable<object> {
const url = this.API_BASE;
return this.http.get(url);
}
}
Поскольку jsonplaceholder возвращает только 10 строк данных, поэтому я объединяю данные для большого массива, скажем, 30 строк, для удобства тестирования функции разбивки на страницы. Тем временем обновите поле «id» с помощью итеративного индекса, чтобы «id» выглядел как 1,2,3 ... 30 вместо 1,2,3 ... 10,1,2,3 ... 10,1 , 2,3 ... 10, что является результатом конкатенации, вот и все, ничего особенного.
users.component:
ngOnInit(): void {
this.userService.getUsers().subscribe((users: UserData[]) => {
users = users.concat(users, users);
users.forEach((user, index) => (user.id = index +1));
console.log(users);
this.dataSource.data = users;
});
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
Хотя таблица выглядит красиво, но столбец 'id выглядит странно, они не 1,2,3 ... 30 последовательно, а 21,22,23 ... 30,21,22, 23 ... 30,21,22,23 ... 30
Я попытался распечатать user.id внутри цикла forEach, все хорошо.
users.forEach((user, index) => {
user.id = index + 1;
console.log(user.id);
});
Где я ошибся с этим? Любая подсказка? Спасибо.
P.S. API, используемый в коде: https://jsonplaceholder.typicode.com/users