首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

AngularJS进阶(十四)AngularJS灵异代码事件

  • 23-11-14 10:02
  • 3223
  • 10184
blog.csdn.net

AngularJS灵异代码事件

注:请点击此处进行充电!

事情原委

router_sys.js源代码如下:

 

自己在html路由跳转的代码如下:

 

但是在实际路由过程中,却路由到了下面的状态,相应的页面中去。

诡异的是在UC上第一次路由正常,第二次还是路由到下面的状态!路由命名是没有问题的,却执行到别路由中去了。费解!

驱除内鬼

内鬼一时还真找不出来。

尝试通过编写点击事件在函数内路由至所需页面,结果还是不可达。

  1. class="btn btn-success btn-sm" id="butAdd" ng-click="doAdd()">新增药店
  2. //路由至新增药店
  3. $scope.doAdd = function(){
  4. alert("SHQ");
  5. $state.go('SHQ');
  6. };

提示错误如下:

 Could not resolve 'SHQ' from state 'shopManag'

把路由中的shop_set_dtl.html页面注释掉,居然还能路由!地址居然还显示!如何是好?

 

这个问题已经超出了自己的能力范围,实在是没有办法!

真相大白

呵呵....不要管我,让我哭会!为自己的过错哭会大哭

原来自己写有3个路由分别为router.js、router_sys.js、router.shop.js,我就纳了闷了,我说怎么该路由死活都不对呢,原来问题就出在第一个路由上。第一个路由中的路由这是自己给自己埋的一颗雷啊!雷区如下:

  

  1. //TODO(待考虑)
  2. /*-----------------------药店详情维护------------------------*/
  3. .state('shopDtlManag', {
  4. url: '/shopDtlManag/',
  5. views: { //注意这里的写法,当一个页面上带有多个ui-view的时候如何进行命名和视图模板的加载动作
  6. '': {
  7. templateUrl: 'sys_tpls/rightInfoList.html'
  8. },
  9. 'sys_banner@shopDtlManag': {
  10. templateUrl: 'sys_tpls/sys_banner.html'
  11. },
  12. 'rightContent@shopDtlManag': {
  13. templateUrl: 'sys_tpls/shop_set_dtl.html'
  14. }
  15. }
  16. })

这样就不难解释为何会出现以上灵异事件了。

将之替换为如下代码,问题迎刃而解!

  1. /*---------------------------新增药店-----------------------------*/
  2. .state('shopAdd', {
  3. url: '/shopAdd/',
  4. views: { //注意这里的写法,当一个页面上带有多个ui-view的时候如何进行命名和视图模板的加载动作
  5. '': {
  6. templateUrl: 'sys_tpls/rightInfoList.html'
  7. },
  8. 'sys_banner@shopAdd': {
  9. templateUrl: 'sys_tpls/sys_banner.html'
  10. },
  11. 'rightContent@shopAdd': {
  12. templateUrl: 'sys_tpls/shop_add.html' // 路由至新增药店页面
  13. }
  14. }
  15. })

亡羊补牢

既然错误已犯,自己就要悔过了。必须得把这可盲雷拆掉!

不过看过代码,感觉这可暗雷不好拆除。当初自己是本着药店端和后台管理端可以分开登录来设计的。

当初的项目需求是实现两个管理端分别进入自己的登录界面,分别为index_sys.html和index_shop.hml。而自己起初是将两者置于一起的,后来为了分离后,应对交易调用错误如何处置的情况,故保留了index.html。

拆雷时,须将index.html与router同时拆除。

其实,经过对比发现router_sys.js与router.shop.js的唯一不同之处在于以下划红线部分代码:   

  1.  $stateProvider
  2.         .state('index', {
  3.             url: '/index',
  4.             views: {
  5.                 '': {
  6.                     templateUrl: 'sys_tpls/home.html' 
  7.                 },
  8.                 'sys_login@index': {
  9.                     templateUrl: 'sys_tpls/sys_login.html'
  10.                 }
  11.             }
  12.         })

经过不断测试,自己必须将这颗暗雷拆除。

经过调试,查出暗雷之后,程序运行正常!╰( ̄▽ ̄)╮

美文美图

注:本文转载自blog.csdn.net的No Silver Bullet的文章"http://blog.csdn.net/sunhuaqiang1/article/details/50153443"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top