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 相关文章推荐
createElement动态创建HTML对象脚本代码
Nov 24 Javascript
js 匿名调用实现代码
Jun 19 Javascript
javascript对数组的常用操作代码 数组方法总汇
Jan 27 Javascript
js三种排序算法分享
Aug 16 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
Java File类的常用方法总结
Mar 18 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
微信小程序上线发布流程图文详解
May 06 Javascript
jQuery实现简单轮播图效果
Dec 27 jQuery
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
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
jquery实现楼层滚动效果
2018/01/01 jQuery
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
Python ZipFile模块详解
2013/11/01 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
医科大学毕业生自荐信
2014/02/03 职场文书
敬老院活动总结
2014/04/28 职场文书
超市客服工作职责
2014/06/11 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
被告答辩状范文
2015/05/22 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript