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 相关文章推荐
jQuery之按钮组件的深入解析
Jun 19 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
12个非常有用的JavaScript技巧
May 17 Javascript
ligerUI---ListBox(列表框可移动的实例)
Nov 28 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
详解基于Node.js的HTTP/2 Server实践
May 31 Javascript
基于JS实现一个随机生成验证码功能
May 29 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
微信小程序input抖动问题的修复方法
Mar 03 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
PHP 实现explort() 功能的详解
2013/06/20 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
PHP文件与目录操作示例
2016/12/24 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
OpenCV实现人脸识别
2017/04/07 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python中print函数简单使用总结
2019/08/05 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
python的数学算法函数及公式用法
2020/11/18 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
十八大报告观后感
2014/01/28 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
电信营业员岗位职责
2015/04/14 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python