【发布时间】:2019-03-10 16:59:00
【问题描述】:
我有一个用 Observables 声明的数组,在数组中它用 console.log 显示,但在下拉列表中我可以看到,只有当点击下拉菜单时,它才是 id 或名称,但我不想该对象有一个字符串,应该在下拉列表中向我显示该项目下面的哪个字符串,例如 32323 它负责这个项目,当我打开这个项目时,应该在下拉列表中显示我负责。
这是我的代码。
cluster$: Observable<DropdownOption[]>;
selectClusterOptions = createSelector(
selectClusters,
clusters => {
const options: DropdownOption[] = [];
options.push(...clusters.map(cluster => ({ key: cluster.id, value: cluster.name })).toArray());
return options;
}
);
this.cluster$ = store.pipe(select(this.selectClusterOptions));
这是 HTML
<app-dropdown label="Cluster" labelWidth="75px" optionWidth="170px" [items]="cluster$ | async" [ngModel]="(selectValueItem$ | async).clusterId"></app-dropdown>
【问题讨论】:
-
用作
[(ngModel)] -
[(ngModel)] 或两种方式的数据绑定不适用于异步
-
您可以尝试在数据更新时使用
changeDetectorRef.detectChanges()
标签: html angular typescript observable ngrx