angular.js - angularjs 中ui-sref里的地址会和浏览器里的不一致
问题描述
我在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 部分 总视图
<section ui-view='indexheader'></section><p ng-show='hidep' class='yo-container'> <p class='yo-xs-left'><p > <p ng-include='’templates/citypart.html’'></p> //城市</p> </p> <p class='yo-xs-right'><p class='yo-school'> <!--<p ng-include='’templates/schoolpart.html’'></p>--> <p ui-view='itemcontent'></p> //学校部分</p> </p></p>
citypart.html
<a ng-repeat='item in items' ui-sref='.school({id:item.ID})' ui-sref-active='yo-active'> {{item.cityname}}</a>
schoolpart.html
<p ng-controller='chschoolController'> <p ng-if='items.length==0'>团队招募,期待你的加入</p> <p ng-repeat='item in items track by $index' ng-cloak><a ui-sref='chdorm({id:item.ID})' ng-click='setItem($index)'>{{item.schName}}</a> </p></p>
问题解答
回答1:最好把坏的情况是什么样式贴出来,题外话,你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’);}] } })回答2:
能放上出现错误的截图吗?如果需要定位的话,可以在config里面监听路由切换事件$stateChangeStart,并查看路由变换记录:
$rootScope.$on(’$stateChangeStart’, function(event, toState, toParams, fromState, fromParams){ console.info(fromState + '->' + toState, toParams, fromParams); })
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题3. MYSQL新建用户设置可以远程访问的问题4. mysql多表联合查询优化的问题5. 数据库设计 - MySQL数据库主键问题6. MySQL中的enum类型有什么优点?7. linux - 为什么我在mysql的my.cnf下找不到bind-address?8. node.js - 我想让最后进入数据库的数据,在前台最先展示,如何做到?9. mysql字符串排序问题10. mysql 5.7单表300万数据,性能严重下降,如何破?
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)