關於select選項的寫法 有三種情況 ①.寫在HTML中,②.寫在JS一個數組中,③.通過接口去獲取得到,我們直接上代碼:
第一種是option的值寫在HTML中
<div id="app"> <select name="status" id="status" v-model="selected"> <option value="">請選擇</option> <option value="1">未處理</option> <option value="2">處理中</option> <option value="3">處理完成</option> </select> </div> <script> new Vue({ el:'#app', data:{ selected:'' //默認選中項的value值是什么 就給綁定的屬性什么值 這里默認選中項請選擇的value值是空 我們就給綁定的屬性 select 一個空值 }, }) </script>
第二種是option 選項內容寫在JS中的,通過v-for來遍歷的:
<body> <div id="app"> <select name="status" id="status" v-model="selected"> <option :value="item.statusId" v-for="(item,index) in statusArr">{{item.statusVal}}</option> </select> </div> </body> <script> new Vue({ el:'#app', data:{ statusArr:[ { statusId:'0', statusVal:'請選擇' }, { statusId:'1', statusVal:'未處理' }, { statusId:'2', statusVal:'處理中' }, { statusId:'3', statusVal:'處理完成' }, ], selected:'' }, created(){ // 在組件創建之后,把默認選中項的value值賦給綁定的屬性 //如果沒有這句代碼,select中初始化會是空白的,默認選中就無法實現 this.selected = this.statusArr[0].statusId; } }) </script>
第三種是option 選項內容 通過接口去獲取 但是接口里沒有默認選中項怎么辦呢?看代碼
<body> <div id="app"> <select name="status" id="status" v-model="selected"> <!-- 由於從接口獲取的select的下拉值沒有‘請選擇’,所以我們要自己寫一個 --> <option value="">請選擇</option> <option :value="item.statusId" v-for="(item,index) in statusArr">{{item.statusVal}}</option> </select> </div> </body> <script> new Vue({ el:'#app', data:{ statusArr:[], //用來接收從接口里獲取出來的select下拉框里的值 selected:'' }, getSelectInfo(){ var url = "../monitor_admin_front/device/status"; //接口地址 axios.get(url) .then(response => { if(response.data.retCode == 0){ this.statusArr = response.data.data; //將獲取出來的數據賦給定義的數組 以便於去循環遍歷 } }) }, created(){ this.getSelectInfo(); } }) </script>