Tengo este v-select:
<v-select multiple v-model="group.structures" :options="filter" label="name" @input="changed" ></v-select>Cuando "cambio" el atributo de mi función, obtuve una matriz con todos los valores seleccionados cuando agrego o elimino un elemento de mi v-select.
changed(value) { console.log(value); // Return an array with all items in (group.structures). }No quiero obtener toda la matriz sino solo el valor seleccionado/eliminado. ¿Hay alguna forma de obtener el valor seleccionado?
Gracias.
Una de las formas de lograr lo que desea es almacenar el valor anterior en una variable y luego comparar el nuevo valor con él.
data() { return { previousSelectedStructures: []; // ... } } changed(value) { let added = value.filter( (val) => !this.previousSelectedStructures.includes(val) ); let removed = this.previousSelectedStructures.filter( (val) => !value.includes(val) ); // Do some stuff console.log(value); this.previousSelectedStructures = value; }¡Guau! ¡Funciona! ¡Gracias!
Para aquellos que tienen la misma solicitud, no olviden completar sus estructuras seleccionadas anteriores con el contenido existente:
created(){ this.previousSelectedStructures = this.group.structures; },