Возможно, лучше использовать :value
вместо v-model
и вызывать свою функцию в методе @change, отправляя событие (используется для доступа к значению флажка) и параметр, который принадлежит этому флажку.
<tr v-for="(option, index) in options">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="toggle" :value="option.value" @change="toggleOption($event, option)">
<label class="custom-control-label" for="toggle">{{ option.value }}</label>
</div>
А в методе вы получаете событие и опцию в качестве параметров. Затем вы можете получить доступ к значению и идентификатору опций, а также к значению флажка (набирается event.target.checked
)
toggleOption(event, option) {
let app = this;
app.loading = true;
option.value = event.target.checked;
axios.patch('/apiendoint' + option.id, option)
.then(function (resp) {
app.loading = false;
})
.catch(function (resp) {
});
}
Причина использования @change в том, что иногда @input может быть запущен