vue element el-select不能根据v-model显示标签

Posted

技术标签:

【中文标题】vue element el-select不能根据v-model显示标签【英文标题】:vue element el-select can't show label according to v-model 【发布时间】:2019-02-01 15:39:14 【问题描述】:

我正在使用 el-select 并将对象用作 VUE 中带有元素 UI 的选项。

id:'123',name:'label1'

将 id 绑定到值,将名称绑定到选项标签。 当我将 v-model 更改为 id '123' 时,无法选择名称为 'label1' 的选项,并且 el-select 中会显示 '123'。下拉菜单包含所需的选项和一个额外的“123”选项。

我需要的是当我更改 v-model 时将选择该选项。

在可编辑的 el-select 元素中,按 Enter 键触发以下方法:

baseAttributeValueChange(attrId, values)  //Enter pressed
            var vm = this;
            if (this.getAttributeValueById(values[attrId]))  //Skip this block
             else  //HERE
                var attrValue = values[attrId];
                values[attrId] = null;

                apiProduct.createAttributeValue(this.GLOBAL.axios, this.getCategoryId(), attrId, attrValue).then(
                    (res) => 
                        vm.loadAttributeValues(attrId).then(() => 
                            values[attrId] = '';//That's my temporary solution
                            vm.$nextTick(() => 
                                values[attrId] = res.id;
                            )

                        )
                    );
            
        ,

方法返回的options数组,el-select是不是检测不到方法中的数据变化所以不会更新options菜单。

【问题讨论】:

可以分享一下你的组件代码吗? @ShuYoshioka 组件太大了1500行左右,所以分享了关键代码。 【参考方案1】:

我无法直接解决我的问题。但是我发现 el-select 并没有观察到 v-model 的变化。所以我改变了一个变量来触发 el-select 渲染。然后使用 vm.$nextTick() 到 v-model。

【讨论】:

以上是关于vue element el-select不能根据v-model显示标签的主要内容,如果未能解决你的问题,请参考以下文章

vue+element el-select 选项无法选择的问题

vue.js + element中el-select实现拼音匹配,分词缩写多音字匹配能力

element-ui中el-select与el-tree的结合使用实现下拉菜单

Web前端-vue element UI el-select选择框选择el-option触发事件

element-ui中el-select与el-tree的结合使用实现下拉菜单

vue里使用虚拟列表处理element-ui的el-select选择器组件数据量大时卡顿问题