小编Kal*_*kki的帖子

类通过过滤扩展 MatTableDataSource 和表

这是我的业余爱好项目,由于这个问题它已经被卡住了一段时间。这可能是一个简单的问题,但我对 Angular 和 JS 的了解相当有限。不过我的代码在下面(我已经缩短了一点)并且它在某种程度上起作用了。它从服务器获取数据,然后在客户端显示。那里没有问题,但是现在当我尝试进行客户端过滤时,什么也没有发生。字面上地。我正在输入过滤器输入框,什么也没有。不过滤表行。

我想知道这里有两件事:

  1. 我是否使用正确的方法(我可以扩展 MatTableDataSource 吗)?
  2. 我做错了什么(如果我可以扩展 MatTableDataSource)?

MyData.ts

export interface MyData {
    id: number;
    description: string;
}
Run Code Online (Sandbox Code Playgroud)

MyData.service.ts

export class MyService {

    constructor(private http: HttpClient) { }

    getData(): Observable<MyData[]> {
        return this.http.get...
    }
}
Run Code Online (Sandbox Code Playgroud)

MyData.datasource.ts

export class MyDataSource extends MatTableDataSource<MyData> {

    private mySubject = new BehaviorSubject<MyData[]>([]);

    constructor(private myService: MyService) { super(); }

    loadData() {
        this.myService.getData()
        .pipe(catchError(() => of([])))
        .subscribe(data => this.mySubject.next(data));
    }

    connect(): BehaviorSubject<myData[]> {
        return this.mySubject;
    }

    disconnect(): void {
        this.mySubject.complete();
    }
}
Run Code Online (Sandbox Code Playgroud)

MyData.component.ts

export …
Run Code Online (Sandbox Code Playgroud)

rxjs angular-material2 angular angular-cdk angular-material-6

5
推荐指数
1
解决办法
5338
查看次数