如何使用带有observables数组的angular2-dropdown-multiselect?

时间:2017-06-20 05:50:34

标签: angular multi-select

在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;。 怎么做?

3 个答案:

答案 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)); }