2017-05-22 3 views
0

に結合しません。最低3文字を入力すると、Webサービスコールが行われ、可能な一致が表示されます。 MultiSelectで項目を選択して保存すると、選択したアイテムのIDをテーブルに保存しています。選択したIDをマルチセレクションから保存するだけです。私はCPTdata剣道Angular2複数選択は、私たちは複数選択コンポーネントを持っているのいずれかのページにAngular2アプリケーションを構築しています返された応答

私の問題ではコードだけでなく、サポートするフィールドの残りの部分を含んで複数選択で、以前保存したものを表示するためのすべての情報を持つオブジェクト型を返すいますバック私のWeb API呼び出しでデータを取得するには MultiSelectコントロールがあるページを参照すると、選択した値がコントロールにバインドされたり表示されたりしません。私はWeb APIの応答を見て、サポートされているフィールドと共に選択された値がそこに存在することを検証します。前に選択した保存された値を表示するために完了する必要のある他のステップがありますか?ここで

は私のhtmlコードです:ここで

<kendo-multiselect id="txtCptCode" #CptCodemultiselect 
          [filterable]="true" 
          (filterChange)="handleCptFilter($event)" 
          [data]="CPTdata" 
          [textField]="'Code'" 
          (valueChange)="CptValueChange($event)" 
          [valueField]="'CptId'" 
          [(ngModel)]="Model.CPTCodes"> 
     </kendo-multiselect> 

はhandleCptFilter

handleCptFilter(value: any) { 
     if (value.length >= 3) { 
      this.cptRequest.value = value; 
      this._surgeryRequestFormService.getCPTByCodeOrDesc1(this.cptRequest).subscribe(
       data => { 
        this.CPTdata = data; 
       }, 
       error => { 
        console.log("Error", error); 

       } 
     ) 

     } 
     else { 
      console.log("Do nothing"); 
     } 

}です。 Enterキーが押されたか、コンポーネントがフォーカスを失った後、値の供給リストには表示されません。そのとき、ここで

は、デフォルトではCptValueChange

Kendo documentation notesとして
public CptValueChange(value: any): void { 
    var _this = this; 
    var model = new surgeryReservationModel(); 

    if ((this.CPTdata != null) && (value != null || undefined || "")) { 
     for (let entry of this.CPTdata) { 
      for (let selectedCPT of value) { 
       if (entry.Code == selectedCPT.Code) { 
        var CPTDescription; 
        if (_this.Model.CPTDescription != null) 
        { 
         CPTDescription = _this.Model.CPTDescription; 
         _this.Model.CPTDescription = (CPTDescription + "\n" + entry.ShortDescription); 
        } 
        else if (_this.Model.CPTDescription == null) 
        { 
         _this.Model.CPTDescription = entry.ShortDescription; 
        } 

        // _this.surgeryReservationModel.CPTCodeId = entry.CptId; 
        console.log("CPT Description is " + "" + _this.Model.CPTDescription); 
        break; 
       } 
      } 
     } 
     console.log("valueChange", value); 
    } 
} 

答えて

0

です項目は却下されます。

私はkendo-comboboxと同じ問題を抱えていました。以前に選択したアイテムが表示されている場合、コントロールでアイテムをコントロールに移入しました。検索テキストを変更して何かを選択すると、選択した項目が消えることがあります。推奨...すべて、すでに選択した項目、

を表示するための別のコントロールを追加し、あなたが望むように振る舞う別の角度制御を使用して、または

    1. のショートTelerikのアプローチが不足しているダミーの項目に追加するvalueNormalizer関数を記述し、その後[allowCustom]=trueを使用することです。

      // (pseudocode here) 
      valueNormalizer(text Observable<string>){ 
          if(text not in itemList){ 
           itemList.append({ text: text, value: text }); 
          } else { 
           return { 
           value: this.listItems[this.listItems.length - 1].value + 1, 
           text: text 
           } 
          } 
      } 
      

      私は、この機能が意味を成すかどうかについて議論しています。これはあなたがそれを行う方法です。

  • 関連する問題