当前位置: 首页 > news >正文

建手机网站没有注册公司怎么做网站

建手机网站,没有注册公司怎么做网站,农产品如何建设网站,做网站超链接用什么软件问题描述: 我的子页面打印的时候通过isPdf来隐藏“选择参加人员”按钮。 我子页面有个el-dialog,el-dialog里面有个大的div它的id为app-pre-meet-add,在子页面我通过isPdf来显示我想要的内容。现在我在父页面先通过this.$refs.child.control…

问题描述:

我的子页面打印的时候通过isPdf来隐藏“选择参加人员”按钮。

我子页面有个el-dialog,el-dialog里面有个大的div它的id为app-pre-meet-add,在子页面我通过isPdf来显示我想要的内容。现在我在父页面先通过this.$refs.child.controlPdf(true)来调用子页面的controlPdf方法使得子页面的isPdf变成true,然后通过下面的代码来克隆子页面的id为app-pre-meet-add的div:

  this.$refs.child.controlPdf(true);const container = document.getElementById("app-pre-meet-add");// 克隆父元素(深刻隆)const clonedParent = container.cloneNode(true);clonedParent.setAttribute("class", "cloned-app-pre-meet-add-class");container.parentNode.insertBefore(clonedParent, container.nextSibling);// 查找所有带有 hidden 类的子元素 form,并在克隆的元素中移除 hidden 类const clonedHiddenForms = clonedParent.querySelectorAll(".hidden");clonedHiddenForms.forEach((form) => {form.classList.remove("hidden");});

理论上这个新克隆的div应该是有子页面div在isPdf为true情况下的状态,但是为什么isPdf没有用

原因:

这个问题的根源在于cloneNode方法的行为。当你克隆一个DOM元素时,你得到的是该元素在那一刻的快照,包括它的所有子元素和属性。但是,这个方法不会克隆与该元素相关联的JavaScript状态或事件监听器。在你的情况下,isPdf可能是一个响应式数据属性或者计算属性,它控制着el-dialog中某些元素的显示或隐藏。当你克隆div时,你只是复制了它的静态结构,而没有复制Vue实例中的响应式状态。


解决方法:

使用Vue的ref$nextTick
你可以在子组件的div上使用ref,并在父组件中通过$refs访问它。然后,你可以在父组件中调用一个方法来改变isPdf的状态,并使用$nextTick来确保DOM已经被更新。在$nextTick的回调函数中,你可以克隆div

就是使用nextTick!!!

appPreAdd(formText, vdata, flag, res) {this.$refs.child.controlPdf(true);this.$nextTick(async () => {const container = document.getElementById("app-pre-meet-add");// 克隆父元素(深刻隆)const clonedParent = container.cloneNode(true);clonedParent.setAttribute("class", "cloned-app-pre-meet-add-class");container.parentNode.insertBefore(clonedParent, container.nextSibling);// 查找所有带有 hidden 类的子元素 form,并在克隆的元素中移除 hidden 类const clonedHiddenForms = clonedParent.querySelectorAll(".hidden");clonedHiddenForms.forEach((form) => {form.classList.remove("hidden");});await htmlToPdftoFile.getPdfFromHtml(".cloned-app-pre-meet-add-class",formText,"add",res.data.data,new Date(vdata.createTime),this.checkFormTypeList[flag]);container.parentNode.removeChild(clonedParent);this.$refs.child.controlPdf(false);});},

最新问题:

这个问题就是await后面要跟promise,我没注意。

可以看到await修饰 this.appPreAdd方法

解决:

appPreAdd(formText, vdata, flag, res) {return new Promise((resolve, reject) => {this.$refs.child.controlPdf(true);this.$nextTick(async () => {try {const container = document.getElementById("app-pre-meet-add");const clonedParent = container.cloneNode(true);clonedParent.setAttribute("class", "cloned-app-pre-meet-add-class");container.parentNode.insertBefore(clonedParent,container.nextSibling);const clonedHiddenForms = clonedParent.querySelectorAll(".hidden");clonedHiddenForms.forEach((form) => {form.classList.remove("hidden");});// 等待 PDF 生成完成await htmlToPdftoFile.getPdfFromHtml(".cloned-app-pre-meet-add-class",formText,"add",res.data.data,new Date(vdata.createTime),this.checkFormTypeList[flag]);container.parentNode.removeChild(clonedParent);this.$refs.child.controlPdf(false);// 成功完成,解析 Promiseresolve();} catch (error) {// 发生错误,拒绝 Promisereject(error);}});});},

http://www.yayakq.cn/news/247112/

相关文章:

  • 山东住房城乡建设部网站dw怎么做网站地图
  • 一般网站空间要多大金山网站制作
  • 哪个旅游网站可以做私人定制网站开发找聚脑网
  • 佛山网站建设怎么选做ps兼职的网站有哪些
  • 柬埔寨网站建设运营维护wordpress海报功能
  • 网站域名怎么弄南阳网站优化公司
  • 江苏运营网站建设业务wordpress导入媒体查看
  • .简述网站开发的流程衡水 网站开发
  • 哪家微信网站建设好五合一营销型网站
  • 个人如何建设网站广告设计与制作短期培训班
  • 响应式网站是什么情况wordpress get_attached_media
  • 网站建设可行性报告范文百度网站权重查询
  • 买2g 空间做下载网站win xp 个人网站免费建设
  • 沧州免费建站百度指数app官方下载
  • 靓号网建站制作企业推广网站
  • 微信网站开发报价表网站搭建中转
  • 江门做网站那家公司好php语言开发网站流程
  • 定制自己的软件seo排名优化技巧
  • 百度站内搜索代码网站开发维护合同样板
  • 三里河网站建设公司天津塘沽爆炸地点
  • 网站运营指标wordpress评论嵌套样式修改
  • 看电视剧免费的网站wordpress 维护中
  • sedo这种多语言网站怎么建设wordpress音频样式
  • 建一个商城网站多少钱php做企业网站管理系统
  • 织梦57网站的友情链接怎么做wordpress 页面属性模板
  • 慈溪建设局网站做游戏推广一个月能拿多少钱
  • 制作网站 公司简介定制做网站技术
  • 做个网站多少钱大概重庆电商网站
  • 廉政网站 建设需求太原网站建站模板
  • 做盗版网站的怎样做网站规划