码迷,mamicode.com
首页 > Web开发 > 详细

Vue使用枚举类型实现HTML下拉框

时间:2018-02-05 16:07:53      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:html   control   ret   push   100%   enum   div   length   dom   

下拉框包含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:[] //存放下拉框结果
}
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;">
                <option value="-1">-请选择-</option>
                <option v-for="option in selectStatus" :value="option.code">{{option.name}}</option>
            </select>
        </div>

显示效果:

技术分享图片

 

Vue使用枚举类型实现HTML下拉框

标签:html   control   ret   push   100%   enum   div   length   dom   

原文地址:https://www.cnblogs.com/gczmn/p/8417784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!