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>