Моя таблица матчей работает нормально, но при добавлении mat-sort после официальной документации api она не работает в ngAfterViewInit со следующим сообщением
Невозможно установить свойство "sort" неопределенного в ViewFeedbackComponent.ngAfterViewInit
По этому вопросу уже есть сообщение SO (см. Следующую ссылку). Mat-table Sorting Demo не работает, но я все еще не могу заставить его работать.
Кто-нибудь видит проблему? Официальный пример работает со "статическим" MatTableDataSourcedefined в самом компоненте, однако я запрашиваю его из моего back-end.
Любая помощь очень ценится!
MatSortModule уже импортирован в app.module.ts, директивы заголовка mat-sort-header применяются к столбцам, а ngAfterViewInit уже точно соответствует официальному примеру...
import { Component, OnInit, ViewEncapsulation, ViewChild, AfterViewInit} from '@angular/core';
import { Feedback} from '../../../../../models/feedback';
import { FeedbackService} from '../../services/feedback.service';
import { MatTableDataSource, MatSort} from '@angular/material';
@Component({
selector: 'app-view-feedback',
templateUrl: './view-feedback.component.html',
styleUrls: ['./view-feedback.component.css'],
encapsulation: ViewEncapsulation.Emulated
})
export class ViewFeedbackComponent implements OnInit, AfterViewInit {
feedbacks: Feedback[] = [];
showSpinner: boolean = true;
displayedColumns: String[] = [
'id',
'user',
'timestamp',
'stars'
];
dataSource: MatTableDataSource < Feedback > ;
@ViewChild(MatSort) sort: MatSort;
constructor(private _feedbackService: FeedbackService) {}
ngOnInit() {
this._feedbackService.getFeedback.subscribe(
res => {
this.feedbacks = res;
this.dataSource = new MatTableDataSource(this.feedbacks);
}
);
}
ngAfterViewInit() {
this.dataSource.sort = this.sort;
}
}