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}}