elementUI中<el-cascader使用动态加载时的默认值问题

在element中用<el-cascader标签的lazyLoad(动态加载)遇到一个问题,就是例如我是“编辑”的,所以打开时就要有一个值,但是这组件我发现,编辑时给他赋了值也不显示,这个有人遇到过没?

阅读 18.5k
5 个回答

this.$refs['cascaderRefArea'].inputValue = '编辑时你的值'
这可以解决。随便赋值什么都可以

因为是动态加载,编辑回显也是需要提前把数据加载出来的,赋值之前列表数据已经有了么?

新手上路,请多包涵

最后怎么解决了呢?我是听过强制重新渲染来解决的

我的解决方案是偷了个懒,让后台同时给了上次选中的value值和label的值。然后vue文件中data里面新增两个字段来保存,一个是保存value的数组,一个是将label拼接“/”后作为字符串保存起来,当该字符串有值时就把el-cascader的placeholder的值设置为这个字段,并且在placeholder有值时,动态添加一个class将el-cascader中placeholder的字体颜色设置为有输入值的颜色(添加的class >>> .el-input__inner::placeholder { color: #606266;})。想了半天,另辟蹊径,最简单暴力的方法... 捂脸 当然这种操作方式对不开放搜索功能的el-cascader比较友好,反正是动态加载的子节点,搜也搜不出来,如果是加了filterable属性的,一获取焦点的时候placeholder值就没了.

新手上路,请多包涵

我的解决方案是

编辑状态下用一个el-select回显当前的选择项,当然是要初始化数据的值的, 点击变更, 给这个select隐藏, 把cascader显示出来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏