web-dev-qa-db-ja.com

ng2-smart-tableのドロップダウンで複数選択を設定する方法は?

私のアプリでは、ng2-smart-tableのドロップダウンリストに動的な値をロードしています。 ng2-smart-tableのドロップダウンで複数選択を有効にする必要があります。

注:ドロップダウンでの複数選択はチェックボックスではありません。

6
khushboo

独自のカスタムエディターコンポーネントで試すことができると思います。基本的なselectと複数のattributeを追加しましたが、必要に応じて、より複雑なカスタムコンポーネントを作成できます。

valuePrepareFunctionとvoilaを使用してコンポーネントにデータを渡します。

settings.ts

private settings = {
 // Previous config ...

 columns: {
  multiple: {
    title: 'Multi select',
    type: 'html',
     editor: {
      type: 'custom',
      valuePrepareFunction: (cell, row) => row,
      component: MultiSelComponent,
     },
  }
 }
}

multiSel.component.html

<select multiple [(ngModel)]="yourModelStore">
  <option *ngFor="let item of myValues" [value]="item.value">{{item.name}}</option>
</select>

multiSel.component.ts

import { Component, Input, OnInit } from '@angular/core';
import { ViewCell } from 'ng2-smart-table';

....

export class MultiSelComponent implements OnInit {

  @Input() value;

  yourModelStore: any; // rendered as this.yourModelStore = ['value', 'value'];

  ngOnInit() {
    this.myValues = this.value;
  }

module.ts

declarations:[
  //others ...

  MultiSelComponent
]
entryComponents: [
  MultiSelComponent
]

**私は答えを編集し、設定とcomponent.tsに関するより多くの情報を追加しました

8
Emanuele