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

vue自定义指令bug

问题描述:

页面加载时,报已下错误。同时,页面数据不显示

环境介绍:

已经添加了vue自定义指令permission,实现如下,用以控制元素显示权限

app.directive('permission', (el, binding) => {if (!store.hasPermission(binding.value)) {if (!binding.value.includes('list')) {el.remove();} else {// 清除不显示的元素el.innerHTML = '';// 创建一个父节点const parentNode = document.createElement('div');parentNode.style.width = '100%';parentNode.style.display = 'flex';parentNode.style.justifyContent = 'center';parentNode.style.alignItems = 'center';const imgElement = document.createElement('img');imgElement.src = '@/../../public/layout/images/noPermission.png'; // 设置图片路径imgElement.alt = '无权限访问图片';imgElement.style.objectFit = 'contain';imgElement.style.height = '40vh';parentNode.appendChild(imgElement);el.appendChild(parentNode);}}
});

页面实现代码

<Button 
v-if="dialogForm.docStatus == 0" 
v-permission="'project:info:basic'" 
label="提交" 
type="button" 
severity="success"@click="onSave(1)"
></Button>

其他介绍:

已知dialogForm.docStatus已经在初始时定义了,并被赋值0;后续,通过接口,将返回结果赋值给该变量。

乍一看是不是没有问题,但是页面确实也报错,不显示数据。

问题分析:

初始页面时,因为初始赋值,button元素是存在的,通过vue自定义指令,发现需要删除该元素,结果因为页面接口返回结果,出发了v-if,直接元素没了。所以自定义指令中的删除逻辑,发现家被偷了,所以报错了。

解决方法:

直接外面包一层,保证自定义指令逻辑执行时,有元素可以操作。

<div v-if="dialogForm.docStatus == 0"><Button v-permission="'project:info:basic'" label="提交" type="button" severity="success" @click="onSave(1)"></Button>
</div>

问题回顾:

对于浏览器的报错,还是没法快速定位,只是答题猜到是因为元素操作导致的,但是结合复杂的页面逻辑,没法准确定位问题(特别是,没有报自己代码错误位置的提示)。有大佬能帮忙解答下,如何定位的技巧吗。

http://www.xdnf.cn/news/15641.html

相关文章:

  • Skia 的核心类---深入画布SkCanvas
  • Jfinal+SQLite处理 sqlite数据库执行FIND_IN_SET报错
  • Spring AI:程序调用 AI 大模型
  • Python编程进阶知识之第二课学习网络爬虫(selenium)
  • Java HashMap key为Integer时,遍历是有序还是无序?
  • 信息学奥赛一本通 1575:【例 1】二叉苹果树 | 洛谷 P2015 二叉苹果树
  • 基于LiteNetLib的Server/Client Demo
  • 深入理解 Redis 集群化看门狗机制:原理、实践与风险
  • 当OT遇见IT:Apache IoTDB如何用“时序空间一体化“技术破解工业物联网数据孤岛困局?
  • iOS 文件深度调试实战 查看用户文件 App 沙盒 系统文件与日志全指南
  • iOS WebView 调试实战 全流程排查接口异常 请求丢失与跨域问题
  • 深入理解进程地址空间:虚拟内存与进程独立性
  • 首个直播流扩散(LSD)AI模型:MirageLSD,它可以实时把任意视频流转换成你的自定义服装风格——虚拟换装新体验
  • LVS(Linux Virtual Server)详细笔记(实战篇)
  • 基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证
  • SpringSecurity-spring security单点登录
  • 【数据结构初阶】--双向链表(一)
  • VUE目录结构详解
  • 1 初识C++
  • ElasticSearch Doc Values和Fielddata详解
  • 数学积分方程显式求解
  • Android性能优化之电量优化
  • http与https的主要区别是什么?
  • http性能测试命令ab
  • sqli-labs靶场通关笔记:第29-31关 HTTP参数污染
  • 【前端】输入框输入内容时,根据文本长度自动分割,中间用横杠分割
  • 模版匹配的曲线好看与否有影响吗?
  • Git 中如何比较不同版本之间的差异?常用命令有哪些?
  • 金属伪影校正的双域联合深度学习框架复现
  • Prometheus错误率监控与告警实战:如何自定义规则精准预警服务器异常