Element的el-cascader组件获取级联选中的label值


Element的el-cascader组件获取级联选中的label值


Element的el-cascader(级联器)组件的value容易获取,主要是label。用 this.$refs[关联组件名].currentLabels 可以获取,但是这个方法已经过期了。

需使用getCheckedNodes方法的节点获取。即

this.$refs["cascader"].getCheckedNodes()[0].label

示例代码如下:

methods: {
  handleChange(value) {
      console.log(this.$refs["cascader"].getCheckedNodes()[0].label)
  }
}

如果想要获得多级级联的label,则通过pathLabels可以获得对应的label数组。

methods: {
  handleChange(value) {
      console.log(this.$refs["cascader"].getCheckedNodes()[0].pathLabels)
  },
}

法2:

最近使用element-ui 的Casecader 级联对象时,后台要求将对象的label值也传过去,然而,element-ui 官方并没有提供这样方(keng)便 ( die ) 的方法。

一时间直是束手无策... 

 无奈只能通过遍历树来一一获取了(以下获取到的将会是一个数组,可根据数组来获取其中的label):

getCascaderObj = function(val, opt){
return val.map(function (value, index, array) {
for (var itm of opt) {
if (itm.value == value) { opt = itm.children; return itm; }
}
return null;
});
}

完整事例:





    "UTF-8">
    "viewport" content="width=device-width, initial-scale=1.0">
    "X-UA-Compatible" content="ie=edge">
    Document
    "stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/index.css">
    



    
"app"> "val" placeholder="试试搜索:指南" :options="options" filterable @change="handleItemChange">
for="i in vals"> label:{{i.label}} - value{{i.value}}