Estoy tratando de usar b-form-checkbox con b-table. Intentando recuperar los ID del módulo seleccionado.
<b-table id="module-table" :items="list.modules" :fields="fields" :busy="isBusy"> <template slot="num" slot-scope="row"> {{ row.index + 1 }} </template> <template slot="checkbox" slot-scope="row"> <b-form-group> <b-form-checkbox v-if="!isLoading" v-model="row.item.selected" @change="selection(row.item.moduleId)" variant="outline-secondary" class="mr-1"> </b-form-checkbox> </b-form-group> </template> </b-table> data: { fields: [ { key: 'checkbox', label: '', class: 'd-none d-lg-table-cell' }, { key: 'num', label: 'Num', class: 'd-none d-lg-table-cell' }, ], selected: [] }Aunque puedo recuperar los ID de módulo seleccionados, pero no puedo eliminarlos al cambiar las casillas de verificación. Si alguien puede proporcionar una idea sobre cómo rastrear si la casilla de verificación está seleccionada (verdadero) o no seleccionada (falso). Gracias por adelantado.
methods: { selection(item) { if (true) app.selected.push(item); else app.selected = app.selected.map(x => x != item); } },Los valores de las casillas de verificación ya están almacenados en list.modules[].selected a través de v-model , por lo que podría usar un accesorio calculado para obtener los módulos seleccionados en lugar de usar una matriz selected por separado:
@change="selection(⋯)" de <b-form-checkbox> : <!-- <b-form-checkbox v-model="row.item.selected" @change="selection(row.item.moduleId)" // remove > --> <b-form-checkbox v-model="row.item.selected" >selection y la propiedad de datos selected , ya que ya no son necesarios. export default { data() { return { // selected: [] // remove } }, methods: { // selection() {⋯} // remove } }list.modules[] para los módulos seleccionados: export default { computed: { selected() { return this.list.modules.filter(module => module.selected) }, }, }