angular.js - angularjs 中ui-sref里的地址会和浏览器里的不一致
PHPz
PHPz 2017-05-15 16:56:06
[AngularJS讨论组]

我在angular里面使用了ui-router, 在a标签中使用了ui-sref,但是现在发现一个情况就是,有时候莫名其妙浏览器地址栏里的参数会和标签里写的不一致,而且时好时坏,不知道问题出在哪里了。

点击a标签,会跳转到另一个视图上去的。不知道这样写对不对,主要是这个现象会突然出现,毫无规律可循,地址栏的变化都是靠ui-sref去改变的,也没有使用别的东西去修改url。。

路由代码

.state('chschool',{
            url: '/chschool',
            views: {
                '': {
                    templateUrl: 'templates/chschool.html' //总视图 内嵌了顶部和右侧学校部分
                },
                'indexheader@chschool':{
                    templateUrl: 'templates/indexheader.html' //顶部
                },
                'itemcontent':{
                    templateUrl: 'templates/schoolpart.html' //学校部分
                }
            }
        })
        .state('chschool.school',{      //修改学校 用来局部刷新 学校部分 这里根据路由参数
            url: '/school/{id}',
            views: {
                'itemcontent':{
                    templateUrl: 'templates/schoolpart.html'
                }
            }
        })
        .state('chdorm',{     //进入楼栋的页面 需要根据传入的学校参数来获取对应的楼栋,这里就碰到了传入的学校id会和schoolpart.html里面用ng-repeat循环出来的ui-sref中的参数不同
            url: '/chdorm/{id}',   
            views: {
                '': {
                    templateUrl: 'templates/chdorm.html'
                    }
            }
        })

html 部分 总视图

//城市

//学校部分

citypart.html


    {{item.cityname}}

schoolpart.html

团队招募,期待你的加入

{{item.schName}}

PHPz
PHPz

学习是最好的投资!

全部回复(2)
怪我咯

最好把坏的情况是什么样式贴出来,
题外话,你js可以稍微优化

.state('app.table.datatable', {
              url: '/datatable/:id',
              templateUrl: function (stateParams) {
                console.log(stateParams);
                return 'resources/tpl/test/table_static.html';
              },
              resolve: {
                loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
                  return $ocLazyLoad.load('resources/js/controllers/dataTableDemo.js');
                }]
              }
            })
仅有的幸福

能放上出现错误的截图吗?
如果需要定位的话,可以在config里面监听路由切换事件$stateChangeStart,并查看路由变换记录:

$rootScope.$on('$stateChangeStart',
    function(event, toState, toParams, fromState, fromParams){   
        console.info(fromState + "->" + toState, toParams, fromParams);     
    }
)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号