2017-02-01 19 views
0

私はRxjsを使用して料金プランを作成しています。私は選択入力でそれらを設定したい。Rxjsを使用してng2-select2命令を入力してください

現在、私はこれらの計画を示すためにng2-select2を使用しています。

まず第一に、私は計画を取得する必要があるサーバーを構成:

this.serverService 
     .list() 
     .subscribe(
      (result: any) => { 
       for (let plan of result) 
        this.plans.push({id: plan.id, text: plan.name}); 
      }, 
      (error: any) => { 

      } 
     ); 

this.plansは私angular2コンポーネントのArray<Select2OptionData>分野です。

ので、select2this.plansにバインドされます。それにも関わらず

<select2 id="default-select" 
    (valueChanged)="select2Changed($event)" 
    [data]="plans" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    [width]="250" 
    [theme]="'bootstrap'"> 
</select2> 

いつ、どのようthis.plansフィールドを初期化するために、私はかなり理解していません。

  1. 時:constructorngOnInitに、別の機能に?
  2. HOW:私はRxを使用しています。したがって、サブスクリプションが十分に届くと、select2ディレクティブの値は計画を示すはずです。

私はとてもうまく説明したと思います。

答えて

0

あなたはそれを定義するとき、あなたの変数権利を初期化することができます

private data: Array<Select2OptionData> = []; 

この方法では、データを返すために、あなたのサービスを待って何の問題もありません。

私が気づいたことは、オブザーバブルが常に完全なオプションリストを出力すると仮定すると、サービスへのサブスクリプションによってデータ配列に重複エントリが生じる可能性があることです。しかし、あなたの実装でこれが当てはまるかどうかはわかりません。

関連する問題