b是一組數字,但我不懂如果是"0"的話,怎樣才能整行option不show出來。
b<=0?(b<=0?0:b):"" 如果這樣寫會有一行是空白,怎樣寫在option外邊而又做到我要的效果。
<select name="time" class="form-control" v-model="time" required>
<option v-for="(b,a) in Num" :value="a" v-text="(b<=0?0:b)"></option>
</select>
可以用 v-if 來決定要不要渲染出來。
<template>
<select ...>
<option v-for="(b,a) in Num" v-if="b !== 0" ...>
</option>
</select>
</template>
或是先過濾 array 裡面得值
<option v-for="v in Num.filter(x=>x!==0)" ...>
但是我個人還是建議整理好資料再放到模板,會比較好維護。
export default {
data() {
return {
Num: [...]
}
},
computed() {
nums() { return this.Num.filter(x => x!=0); }
}
}
是要這種效果嗎? array 裡面的第 0 個 peter 不會顯示出來。
是的話直接寫 v-show='b>0'
應該就可以了
<!DOCTYPE html>
<html lang="en">
<hea
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<select name="test" id="test" v-model="result">
<option v-for="(item, index) in names" :value="index" v-show="index>0">{{item}}</option>
</select>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
data(){
return{
names: ['peter', 'leo', 'Angu'],
result: ''
}
},
});
app.mount('#app');
</script>
</body>
</html>