企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] >[success] # 提交表单时传值参数处理方案 有许多时候需要给后台传递的参数跟前端展示的参数不同, 例如前端需要在页面展示的是个数组的内容,但是后台需要传过去的不是数组的形式,而是逗号分隔的字符串形式 , 就需要去把这个数组用join(',')给转换成字符串分隔的形式,但是这样就改变了原数组,如果使用的是element ui的某些ui组件,人家组件要求就是数组形式,强制给转换成字符串就会报错,换以前我的写法: >[success] ## 以前的写法 ~~~ // 变量 data(){ formList: { a: ['1','2''3'] b: false } } // 参数 let parameter = { nameLsit: this.formList.a.join(','), isShow: this.formList.b } // 调用接口 Api(parameter).then(res => { console.log(res,'成功') }).catch(e => { console.log(e,'失败') }) ~~~ <br/> >[success] ## 正确的写法 上面的写法很麻烦也很不实用,如果以后有一个需求需要每次提交表单时候保存提交时候的状态,就会很麻烦重新改代码,正确的写法是使用深拷贝来实现复制一份数据修改复制的数据,然后最终把复制的数据当做参数传给后台 ~~~ // 引入深拷贝文件 import { deepCopy } from '@/utils' // 变量名字直接按照接口需要的名字起 data(){ formList: { nameLsit: ['1','2''3'] isShow: false } } // 参数 let formList = deepCopy(this.formList) formList.nameLsit = formList.nameLsit.join(',') let parameter = formList // 调用接口 Api(parameter).then(res => { console.log(res,'成功') }).catch(e => { console.log(e,'失败') }) ~~~