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之水平横向滚动歌词同步的应用
May 07 Javascript
教您去掉ie网页加载进度条的方法
Dec 09 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
分享jQuery网页元素拖拽插件
Dec 01 Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 Javascript
JQuery.validationEngine表单验证插件(推荐)
Dec 10 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 Javascript
js实现前面自动补全位数的方法
Oct 10 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
如何提升vue.js中大型数据的性能
Jun 21 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
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
javascript 写类方式之五
2009/07/05 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
先进个人获奖感言
2014/01/24 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
学校运动会感想
2015/08/10 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL