优化这段 js代码 // 图片判断 if ( !resp.data.data.medicalHistoryInfo.patientHeadPortrait || resp.data.data.medicalHistoryInfo.patientHeadPortrait.md5 == "" ) { this.generalData.patientURL = this.generalData.defaultPortrait; } else { this.generalData.patientURL = `${this.resourceUrl}/${resp.data.data.medicalHistoryInfo.patientHeadPortrait.directory}/${resp.data.data.medicalHistoryInfo.patientHeadPortrait.md5}.${resp.data.data.medicalHistoryInfo.patientHeadPortrait.type}`; } if ( !resp.data.data.medicalHistoryInfo.oldDoctor || resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait .md5 == "" ) { this.generalData.portraitURL = this.generalData.defaultPortrait; } else { this.generalData.portraitURL = `${this.resourceUrl}/${resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait.directory}/${resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait.md5}.${resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait.type}`; }
时间: 2023-03-31 16:04:54 浏览: 110
可以将重复的代码提取出来,避免重复编写。可以使用一个函数来处理图片判断和赋值的逻辑,将两个 if-else 语句合并为一个。代码示例如下:
function setPortraitURL(data, type) {
if (!data || data.md5 == "") {
return this.generalData.defaultPortrait;
} else {
return `${this.resourceUrl}/${data.directory}/${data.md5}.${type}`;
}
}
this.generalData.patientURL = setPortraitURL(resp.data.data.medicalHistoryInfo.patientHeadPortrait, resp.data.data.medicalHistoryInfo.patientHeadPortrait.type);
this.generalData.portraitURL = setPortraitURL(resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait, resp.data.data.medicalHistoryInfo.oldDoctor.oldDoctorHeadPortrait.type);
相关问题
axios.post("/teacher/findStudents", parm).then(resp => { //处理响应结果 if (resp.data.flag) { //如果查到了结果 //展示表格数据 this.dataList = resp.data.data.rows; //展示分页条数据 this.pagination.total = resp.data.data.total; } else { this.$message.error(resp, data.message); } }) }, // 重置表单 resetForm() { this.formData = {}; }, // 弹出添加窗口 handleCreate() { this.resetForm(); this..dialogFormVisible == true; },
这段代码使用了axios库向服务器发送POST请求,请求的URL是"/teacher/findStudents",请求参数是parm。在成功接收到响应后,如果响应的flag为true,则将响应数据中的rows赋值给this.dataList,将响应数据中的total赋值给this.pagination.total;如果flag为false,则弹出一个错误提示框。resetForm()函数用于重置表单数据,handleCreate()函数用于弹出添加窗口。但是这段代码中有一个错别字,将this..dialogFormVisible改为this.dialogFormVisible即可。
axios.post("/day06/opus/list",param) .then(response=>{ let resp = response.data; this.pageInfo = resp.data; }) //如果放外面先执行 this.num = this.pageInfo.pageNum; 和axios.post("/day06/opus/list",param) .then(response=>{ let resp = response.data; this.pageInfo = resp.data; this.num = this.pageInfo.pageNum; }) 两个代码的区别
这两段代码的区别在于变量 `this.num` 的赋值位置不同。
第一段代码将 `this.num` 的赋值放在了 `axios.post` 的后面,这意味着在 `axios.post` 请求完成并返回数据之前,`this.num` 将被赋值为 `undefined`。而在 `.then` 回调函数中,`this.num` 又被重新赋值为 `this.pageInfo.pageNum`。
第二段代码将 `this.num` 的赋值放在了 `.then` 回调函数中,这意味着只有在 `axios.post` 请求完成并返回数据后,`this.num` 才会被赋值为 `this.pageInfo.pageNum`。
因此,第二段代码更为合适,可以确保在获取到数据后再进行变量赋值,避免了变量值为 `undefined` 的情况。
阅读全文