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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
javascript获取flash版本号的方法
Nov 20 Javascript
jQuery链使用指南
Jan 20 Javascript
js对字符的验证方法汇总
Feb 04 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
Jul 27 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
基于JavaScript实现验证码功能
Apr 01 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
JavaScript刷新页面的几种方法总结
Mar 28 Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 Javascript
vue 扩展现有组件的操作
Aug 14 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
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python3基础之list列表实例解析
2014/08/13 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
python 读取文件并替换字段的实例
2018/07/12 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python内置加密模块用法解析
2019/11/25 Python
python 实现任务管理清单案例
2020/04/25 Python
Python如何读写二进制数组数据
2020/08/01 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
竞选大学学委演讲稿
2014/09/13 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS
MySQL分区以及建索引的方法总结
2022/04/13 MySQL