如何在ng2-smart-table的下拉菜单中设置多项选择?

时间:2018-12-11 18:01:55

标签: angular6 ng2-smart-table

在我的应用中,我在 ng2-smart-table 的下拉列表中加载了动态值。现在,我必须在 ng2-smart-table 的下拉列表中启用多项选择。

注意:下拉菜单中的多项选择不适用复选框。

2 个答案:

答案 0 :(得分:6)

我认为您可以尝试使用自己的自定义编辑器组件。我添加了基本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的更多信息。

答案 1 :(得分:-1)

 yourField: {
    title: 'Your field title',
    editor: {
      type: 'list',
      config: {
        selectText: 'Select',
        list: [
          { value: '1', title: 'Admin' },
          { value: '2', title: 'Manager' },
        ],
      },
    },
    type: 'number',
  },