在arraylist'选项中使用angular2-dropdown-multiselect时,
<ss-multiselect-dropdown [options]="options" [texts]="myTexts" [settings]="mySettings" [(ngModel)]="selectedOption" [ngModelOptions]="{standalone: true}" (ngModelChange)="onChange($event)"></ss-multiselect-dropdown>
但在这里我需要使用observables&#39; options $&#39;而不是数组&#39;选项&#39;。 怎么做?
答案 0 :(得分:0)
是的,就像异步管道一样。但
options$|async
无效
然后我宁愿使用同步回调而不是异步回调
请使用toPromie()
方法同步方法。等,
this.http.get(this.apiUrl + 'GetOptions')
.toPromise()
.then(responce =>
this.options = responce.json())
.catch(error => {
return Observable.throw(error);
});
答案 1 :(得分:0)
如果直接在select组件中使用异步管道不起作用,可以尝试使用:
<ng-container *ngIf="options$| async as options">
<ss-multiselect-dropdown [options]="options" [texts]="myTexts" [settings]="mySettings" [(ngModel)]="selectedOption" [ngModelOptions]="{standalone: true}" (ngModelChange)="onChange($event)"></ss-multiselect-dropdown>
</ng-container>
答案 2 :(得分:0)
您只需使用* ngIf
即可<div *ngIf="myOptions.length > 0">
<ss-multiselect-dropdown [options]="myOptions" [settings]="mySettings" [(ngModel)]="optionsModel" (ngModelChange)="onChange($event)"></ss-multiselect-dropdown>
</div>
像这样,您的页面也不会等待可观察的响应并快速加载。
另外,"myOptions.length > 0"
代替boolean
,您可以使用加载选项后变为真的@Bean
public Scheduler jdbcScheduler() {
return Schedulers.fromExecutor(Executors.newFixedThreadPool(maxPoolSize));
}
。