2016-07-28 3 views
1

私は、Angular2自体のコンポーネントではなく、Angular2のドロップダウン選択コンポーネントを探しています。 jqueryが必要なすべてのコンポーネント、またはAngular2以外の依存関係なしに使用する必要がありますangular2のドロップダウンコンポーネントを探しています

+0

他のライブラリを使用しているかどうかわかりませんが、それを見ることができます: http://www.primefaces.org/primeng/#/dropdown –

+0

オブジェクトとディスプレイを処理する単純なドロップダウン選択のための単一のテキストフィールド。または、ドロップダウン、チェックボックスにカスタム画像のような機能が必要ですか? –

+0

角度素材を使用することができます:https://material.angularjs.org/latest/ - 技術的には別の依存関係ですが、まだ角度のある "家族" –

答えて

1

カスタムドロップダウンを作成することはそれほど重要ではありません。それだけでなく、あなたが得ることができるように '軽量'です。あなたがやらなければならないことは、次のとおりです。

  1. はクリックでリストを可視作る渡されたデータのうち、要素のリストを作成し、リスト要素が選択されているときとき
  2. はデータを放ち、再びそれを隠します要素が

を選択されているこれは、基本的にはあなたが必要なものがすべてです:

@Component({ 
     selector: 'custom-select', 
     template: ` 
      <div class="selected" (click)="openClose()"> 
       <div class="when-selected" *ngIf="selected"> 
        <span>{{selected.title}}</span> 
        <img [src]="selected.img" /> 
       </div> 
       <div class="placeholder" *ngIf="!selected"> 
        This is shown when nothing is selected 
       </div> 
      </div> 
      <ul class="select" [hidden]="closed"> 
       <li *ngFor="let o of options" (click)="select(o)"> 
        <span>{{o.title}}</span> 
        <img [src]="o.img" /> 
       </li> 
      </ul> 
      ` 
     }) 

     export class CustomSelect { 
      @Input() options: any; 

      @Input() selected: any; 
      @Output() selectedChange: EventEmitter<any> = new EventEmitter(); 

      closed: boolean = true; 

      select(option: any): void { 
       this.selected = option; 
       this.selectedChange.emit(option); 
       this.openClose(); 
      } 

      openClose(): void { 
       this.closed = !this.closed; 
      } 
     } 

そして、あなたはこのようにそれを使用します:

<custom-select [(selected)]="myItem" [options]="allOptions"></custom-select> 

は、ここで全体plunker

は今、あなたはそれだけのスタイルと多分あなたに合ったものに素子構造を変更する必要があります。

+0

ありがとうFilip、それは面白いです。私はすでにng2-selectを使用しています。私はレンダリングについて満足していますが、私が選択した要素を取得する方法はわかりません。たぶん、非表示の入力で選択した値を設定する必要があります。 – imtah

+0

どういう意味ですか?選択した要素は、親コンポーネントのmyItemプロパティに格納されます。あなたはどのようにそれを使いたいのかの例を教えてくれますか? –

関連する問題