Vue使用枚舉類型實現HTML下拉框


下拉框包含option中的Value和用來顯示的選項, 一般后台都是使用的Value值,而不是顯示在前台的選項

 

第一步: 編寫下拉框需要的枚舉類型

  StatusEnum.java

public enum StatusEnum { RED, YELLOW, GREEN }

第二步: 編寫用來存放下拉框中對應的option中的Value和顯示的選項

  StatusDTO.java

public class StatusDTO { private String code; private String name; //setter , getter
}

第三步: 編寫controller (resource) 

  statusResource.java

@Path("/status") public class statusResource{ @GET @Path("/getStatus") public List<StatusDTO> getStatus(){ List<StatusDTO> list = new ArrayList<StatusDTO>(); StatusDTO statusDTO = null; for(StatusEnum status : StatusEnum.values()){ statusDTO = new StatusDTO(); statusDTO.setCode(status.toString()); list.add(statusDTO); } return list; } }

第四步: 編寫js文件

var statusModel ={ selectStatus:[], //存放下拉框結果
status:''//存放選中結果
} var selectVue = new Vue({ el:'#selectStatus',// 綁定DOM,一般是綁定div data:statusModel //標簽中使用的model }) var selectStatusResource = Vue.resource('/status/getStatus').get().then(function (response) { var statusList = response.data; var list = []; var status = null; for(var i = 0; i < statusList.length; i++){ status = statusList[i].code == 'RED' ? '紅色' : statusList[i].code == 'YELLOW' ? '黃色' : statusList[i].code == 'GREEN' ? '綠色' : ''; list.push({code:statusList[i].code,name:status}); } statusModel.selectStatus = list; });

第五步: 編寫html文件

 <div id="selectStatus" style="width:140px;height: 37px;text-align: right;margin: 0 2px;position: relative;float: left;">
            <select id="status" style="width:100%;background: #ddebff;height: 35px;color: #082451;
border: 1px solid #082451;border-radius: 2px;font-size: 12px;
box-shadow: 3px 3px 3px #96c0e7 inset;" v-model="status"
> <option value="-1">-請選擇-</option> <option v-for="option in selectStatus" :value="option.code">{{option.name}}</option> </select> </div>

顯示效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM