iView-admin 动态路由问题的解决方法


Posted in Javascript onOctober 03, 2018

 IView-admin 在使用的时候

跳转客户详细后,点击其它页面,然后再从选项卡进入页面时,发下控制台 报错,不能正常打开客户详细页面

[vue-router] Route with name 'customer/detail/:id' does not exist

地址栏的地址变为 http://localhost:8080/  正确的地址为 http://localhost:8080/customer/detail/150

路由器配置如下

{

  path: 'detail/:id',

  name: 'customer/detail',

  meta: {

   title: '客户详细',

   hideInMenu: true

  },

  component: () => import('@/view/customer/detail/detail.vue')

}

最后找到原因是,IView-admin 路由跳转使用的是

turnToPage (name) {

 if (name.indexOf('isTurnByHref_') > -1) {

  window.open(name.split('_')[1])

  return

 }

 this.$router.push({

  name: name

 })
},

采用 this.$router.push({name: name}) 来跳转

在浏览器的Local Storage里发现是这样存储的

{"name":"customer/detail","path":"/customer/detail/150","meta":{"title":"客户详细","hideInMenu":true}}

name 上边没有客户详细的ID信息,所以跳转的时候出现了问题。

现将 mian.vue truenToPage 下新增代码,采用this.$router.push({path: path})方式来跳转

turnToPagePath (path) {

 if (name.indexOf('isTurnByHref_') > -1) {

  window.open(name.split('_')[1])

  return

 }

 this.$router.push({

  path: path

 })
},

然后修改 main.vue handleClick 部分代码

handleClick (item) {

 // this.turnToPage(item.name)

 this.turnToPagePath(item.path)

}

问题解决

由此引发了新问题

从列表打开id为150的客户信息,再从列表打开id为140的客户信息。从别的页面点选项卡跳转到客户详细页面 发现还是进入到 150的客户信息,而不是最新 140的客户信息

解决方法,修改 util.js 

之前的代码

export const getNewTagList = (list, newRoute) => {

 const { name, path, meta } = newRoute

 let newList = [...list]

 if (newList.findIndex(item => item.name === name) >= 0) return newList

 else newList.push({ name, path, meta })

 return newList

}

修改后的代码 

export const getNewTagList = (list, newRoute) => {

 const { name, path, meta } = newRoute

 let newList = [...list]

 let _index = newList.findIndex(item => item.name === name)

 if (_index >= 0) {

  if (newList[_index].path !== path) {  // 如果name已经存在,判断path值

   newList[_index].path = path      // 如果不一样,修改path值

  }

  return newList

 } else newList.push({ name, path, meta })

 return newList

}

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript 清除输入框中的数据
Apr 13 Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
Apr 07 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
webpack源码之loader机制详解
Apr 06 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
Sep 13 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
vue print.js打印支持Echarts图表操作
Nov 13 Javascript
Angular resolve基础用法详解
Oct 03 #Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 #Javascript
angular.js实现列表orderby排序的方法
Oct 02 #Javascript
Angularjs实现数组随机排序的方法
Oct 02 #Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 #Javascript
angularjs获取到My97DatePicker选中的值方法
Oct 02 #Javascript
angular ng-model 无法获取值的处理方法
Oct 02 #Javascript
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
使用PHP强制下载PDF文件示例
2014/01/17 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python实现定时任务
2017/02/08 Python
用python做游戏的细节详解
2019/06/25 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
歌唱比赛策划方案
2014/06/06 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
java executor包参数处理功能 
2022/02/15 Java/Android