我使用的是Angular 4和Angular Material 2 (2.0.0-beta8)的当前测试版。
Material表组件构建在CDK数据表之上。因此,很容易连接一个后端,该后端将调用数据的服务/ apis,并且它实现了将RxJS Observable用于事物的所有连接。 (参见demo here。)
我想弄清楚的是,我是否可以使用@ angular / cdk中的相同AsyncTask Class
接口,并使用它来填充一堆DataSource
元素。
例如:
md-select
这不起作用,因为<md-select class="col-lg-4" placeholder="Product" [dataSource]="configData">
<md-option *ngFor="let product of products" [value]="product.id">{{product.display_name}}</md-option>
</md-select>
没有md-select
属性。我可以在dataSource
上使用类似的界面或属性吗?我想要做的就是不必重新实现md-table / dataSource实现所使用的所有Observable和其他反应功能。
答案 0 :(得分:0)
我不知道,现在你让我考虑尝试订阅DataSource上的connect()
方法。类似的东西:
<md-option *ngFor="let product of configData.connect() | async" ...
这可行,假设您的DataSource.connect返回一个Observable.merge,就像在当前的官方文档中一样。
答案 1 :(得分:0)
npm install @matheo/datasource
我发布了一个库,旨在将来成为正式的Material DataSource,它支持任何类型的输入流(排序,分页,过滤器)以及一些调试配置,以查看其在编码时的工作方式。
import { MatDataSourceModule } from '@matheo/datasource';
您的选择可以成为表单的一部分,触发更改并使用根据选择器的值构建的REQuest刷新DataSource
。
您可以在此处找到StackBlitz演示和更多信息:
https://medium.com/@matheo/reactive-datasource-for-angular-1d869b0155f6
很高兴听到您的意见,并在必要时支持您的用例。
编码愉快!