001

最后更新于:2022-04-02 05:36:55

[TOC] ## 摘要 本文主要摘录饿了么控件使用的时候,一些常见的使用问题 ## bug列表 ### 控件的值无法选中或者无法获取其值 绝大多数情况,是因为绑定的数据没有了,为undefined或者null ### 菜单menu-item的部分无法阻止默认事件 ### el-upload上传控件重置选择的文件 官方提供了这个清空的方法,但是由于refs选择不到对应的导致方法失效 `this.$refs.upload.clearFiles()` 所以建议使用第二种方案,用数组进行数据绑定,然后需要重置的时候数组重置为空即可。 `:fileList="fileList" this.fileList = []` ### 1.4版本时间控件默认的model返回值不对 其默认返回的格式是:gmt的格式 ~~~ Fri Sep 22 2017 00:00:00 GMT+0800 (中国标准时间) ~~~ 而我们需要的标准的字符串格式,可以通过官方的change事件来改变其绑定的model值修复这个问题。 ~~~ @change="getSTime" methods:{ // 这里的值是你需要的 getSTime(val){ this.time = val } } ~~~ ### el-table列无法根据列数据进行更新循环列 场景:在封装自己的表格时,可以将列数据进行动态的传入,包括了列的名称,使用数据的id,以及需要的宽度,这样就不用每次使用的时候定义很多列,但是el-table的列循环无法根据动态的列进行重新渲染,表现的结果是新的列只匹配了上次列数据中存有的字段。 ``` // 列循环数据 // 列数据枚举 columns: [ {id: 'keywordAddress', value: '房源地址', width: '300' }, { id: 'overdueDay', value: '逾期天数', width: '150' }, { id: 'memo', value: '备注', width: null} ] ``` 原因分析:组件的列数据在传入一次之后,不会重新检查变化的列,只会检查变化的传入数据。 解决方案: 第一种:将所有的列字段枚举封装到一个对象里,然后v-if控制需要渲染的列el-table-column 。 第二种:重新渲染整个组件,也就是每次el-table,都用v-if重新渲染,这样列数据肯定是重新循环的。
';