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>
<div ng-show="hideDiv" class="yo-container">
<div class="yo-xs-left">
<div class="yo-area" >
<div ng-include="'templates/citypart.html'"></div> //城市
</div>
</div>
<div class="yo-xs-right">
<div class="yo-school">
<!--<div ng-include="'templates/schoolpart.html'"></div>-->
<div ui-view="itemcontent"></div> //学校部分
</div>
</div>
</div>
citypart.html
<a ng-repeat="item in items" ui-sref=".school({id:item.ID})" ui-sref-active="yo-active">
{{item.cityname}}
</a>
schoolpart.html
<div class="yo-school-name" ng-controller="chschoolController">
<div class="yo-team-join" ng-if="items.length==0">团队招募,期待你的加入</div>
<div class="yo-school-list" ng-repeat="item in items track by $index" ng-cloak>
<a ui-sref="chdorm({id:item.ID})" ng-click="setItem($index)">{{item.schName}}</a>
</div>
</div>
党国委员长
9 years, 2 months ago
Answers
最好把坏的情况是什么样式贴出来,
题外话,你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');
}]
}
})
愿祝福常伴于您
answered 9 years, 2 months ago