Подскажите как заставить фильтр в селекте работать При открытии выбора нет списка и не выбрано значение Я использую Квазар, но не понимаю, почему он не работает
<q-select
v-model = "model"
use-input
:options = "regionsOptions"
@filter = "filterFn"
>
</q-select>
export default {
data() {
return {
model: '',
regions: [
{
"label": "Help",
"value": "help",
"lat": 57.6215477,
"lon": 39.8977411
},
{
"label": "Hello",
"value": "hello",
"lat": 57.6215477,
"lon": 39.8977411
}
],
regionsOptions: [],
}
},
methods: {
filterFn(val) {
const needle = val.toLowerCase()
this.regionsOption = this.regions.filter((v) => v.value.toLowerCase().indexOf(needle) > -1)
},
}
}
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте следующий фрагмент:
const app = Vue.createApp({
data: () => ({
model: '',
regions: [{"label": "Help", "value": "help", "lat": 57.6215477, "lon": 39.8977411}, {"label": "Hello", "value": "hello", "lat": 57.6215477, "lon": 39.8977411}],
regionsOptions: []
}),
methods: {
filterFn (val, update) {
if (!val) {
update(() => {
this.regionsOptions = this.regions
})
return
}
update(() => {
const needle = val.toLowerCase()
this.regionsOptions = this.regions.filter(v => v.value.toLowerCase().indexOf(needle) > -1)
})
}
}
})
app.use(Quasar)
app.mount('#q-app')<link href = "https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons" rel = "stylesheet" type = "text/css">
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/quasar.prod.css" rel = "stylesheet" type = "text/css">
<div id = "q-app">
<q-select
v-model = "model"
:options = "regionsOptions"
use-input
@filter = "filterFn"
>
<template v-slot:option = "scope">
<q-item v-bind = "scope.itemProps">
<q-item-section>
<q-item-label>{{ scope.opt.label }}</q-item-label>
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<script src = "https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/quasar.umd.prod.js"></script>