Как передать параметры в SplitButton?

Рейтинг: 0Ответов: 1Опубликовано: 16.05.2023

Использую DataTable, для каждой из строк таблицы необходимо добавить столбец с кнопкой с доступным набором действий, для этих целей решил использовать SplitButton

<data-table>
  /*Другие столбцы*/
  <Column header="Действия" :frozen="frozenColumns" align-frozen="right">
    <template #body="{data}">
          <split-button
            label="Действия"
            :model="items"
            size="small"
          />
        </template>
  </Column>
</data-table>

Столкнулся с тем что в используемый компонент нельзя передать параметры, подскажите как в SplitButton передать параметры?

Ответы

▲ 0Принят

Решение нашел здесь

Write a function which takes a parameter (row specific information) and returns items array which is built in this function, so you have row specific information available while you build it. Then bind the function call to the splitbutton model, something like that: [model]="getItems(row)".

Сделал так как советует автор поста, получилось следующее

<data-table>
  /*Другие столбцы*/
  <Column header="Действия" :frozen="frozenColumns" align-frozen="right">
    <template #body="{data}">
          <split-button
            label="Действия"
            :model="getRowActions(data)"
            size="small"
          />
        </template>
  </Column>
</data-table>

methods: {
    getRowActions(row){    
        return [        
            {label: 'first action', command: () => this.firstActionHandler(row)},
            {label: 'second action', command: () => this.secondActionHandler(row)},        
        ]    
    },
    firstActionHandler(row) {
        /**/
    },
    secondActionHandler(row) {
        /**/
    },
}