【发布时间】:2018-03-30 02:36:24
【问题描述】:
据我了解 mat table dataSource 是 Observable 的一个薄包装,它的界面看起来很像 ConnectableObservable。
经过一番挖掘,我意识到 rxjs/ConnectableObservable 的连接方法返回一个 Disposable 或更可能 Subscription 取决于您信任的来源。这与材料中预期的 API 不太匹配。
材料网站上给出的示例确实声明了一些额外的类,但感觉就像普通的 ConnectableObservable 在这里应该可以正常工作。
有没有办法让材料表接受 ConnectableObservable 作为数据源,或者我有充分的理由扩展 cdk/DataSource 抽象类?
这里有两个稍微相关的 SO:
- How to use material2 data table
- How do I connect my md-table (cdk data-table) to a service to be used as the data source?
ps如果你有一个可以工作的 plunker/fiddle/任何东西的链接,我很乐意提供一个例子
【问题讨论】:
-
从您提供的数据源示例代码的外观来看,我认为它需要一个连接方法,该方法返回一个 Observable 以供组件订阅数据。我猜在内部它得到的数据是 this.datasource.connect().subscribe((res)=>this.row=res)。 ConnectableObservable 连接方法做了完全不同的事情,所以我认为你不能用它替换正式的抽象实现。
-
@FanCheung 是对的,DataSource 不是 ConnectableObservable 的薄包装,它是一个完全不同的抽象,恰好也有一个名为
connect()的方法 -
@FanCheung 为什么不写一个答案让我可以关闭?我无法接受评论
标签: angular rxjs angular-material