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 22 Javascript
javascript两种function的定义介绍及区别说明
May 02 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 Javascript
用js传递value默认值的示例代码
Sep 11 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
angularjs性能优化的方法
Sep 05 Javascript
JavaScript两种计时器的实例讲解
Jan 31 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
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 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
实例讲解php实现多线程
2019/01/27 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
用Python实现KNN分类算法
2017/12/22 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
python处理“
2019/06/10 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Python requests模块session代码实例
2020/04/14 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
python switch 实现多分支选择功能
2020/12/21 Python
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
新闻编辑自荐书范文
2014/02/12 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
模范教师事迹材料
2014/12/16 职场文书
合同范本之电脑出租
2019/08/13 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python