Я новичок в vue и у меня проблема с условным рендерингом (v-if) в элементе option.
когда у меня есть пустой массив, я хотел бы показать отключенную опцию, иначе он покажет мне страны. Как и в этом описании https://vuejs.org/v2/guide/conditional.html, но, к сожалению, это не работает с дополнительным элементом HTML. Чего мне не хватает?
new Vue({
el: '#app',
data: {
selected: '',
optionAvailable: true,
countries: [
//{ name: 'USA', population: '300M' },
//{ name: 'Canada', population: '100M' },
//{ name: 'Germany', population: '80M' },
]
},
created() {
if(!this.countries.length > 0) {
return this.optionAvailable = false;
}
return true;
},
methods: {
onChange(event) {
this.selected = event.value;
}
}
})
HTML:
<div id="app">
<select @change="onChange($event.target)">
<option v-if="optionAvailable" v-for="(country,index) in countries" :value="country.population">{{ country.name }}</option>
<option v-else disabled>-</option>
</select>
<br>
<span>{{ selected }}</span>
</div>
здесь jsfiddle:
https://jsfiddle.net/50wL7mdz/434002/