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

企业网站程序带wapwordpress手机验证码插件

企业网站程序带wap,wordpress手机验证码插件,智能建站与正常的网站,网站首页分辨率问题描述: 我的子页面打印的时候通过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/700882/

相关文章:

  • 青岛网站制作wordpress图文安装教程
  • 天津公司网站郑州工商注册
  • 境外公司在国内建网站政法网站建设有哪些不足
  • 常州网站推广培训罗湖网站 建设深圳信科
  • 增城免费网站建设域名 网址 网站名称
  • 电商美工素材网站厦门建站方案
  • 网站建设合同附件格式分析网站推广和优化的原因
  • 网站建设框架模板下载河北网络公司网站建设
  • 沃尔玛官方网站查余额建筑网站推荐
  • 学校门户网站建设管理办法可以讨论网站建设的论坛
  • 丽水公司做网站注册公司网上申请流程
  • 怎么投放网络广告合肥网站优化
  • 搜关键词可以搜到的网站怎么做网站设计制造
  • 聊城 网站建设app企业微信下载
  • 薛城网站建设百度关键词搜索排名帝搜软件
  • 网站排名下降怎么办网站推广优化网址
  • 北京建网站的价格如何在网站上推广自己的链接
  • 如何免费制作一个公司网站wordpress备份 ftp
  • 中国建设银行官网站下载中心哪些网站可以做宣传
  • 七星彩网站开发公司安徽省住房建设厅网站
  • 福州门户网站建设必应搜索引擎怎么样
  • 响应式网站404页面怎么做怎么制作美篇教程
  • 公司自建网站企业网站建设的基本原则为
  • 秦皇岛网站制作 微商城建设中国建筑集团有限公司排名
  • 做网站 空间威海住房建设部官方网站
  • 做整站优化wordpress 图片站
  • 门户网站开发模板自己购买域名做网站
  • 公司网站布局百科wordpress
  • 建设厅网站技术负责人要求客户又找不到你
  • 婚庆公司网站的设计与实现网站设计论文大全