angularjs 1.6.1页面刷新后,上一个页面传递过来的参数变成undefined。
情景描述:有一个文章标题列表页面,点击标题,进入文章详细内容页面,这个过程需要把文章id传递过去,但是angularJs中传递参数,进入文章详细内容后,刷新页面,文章id变成了undefined,页面出错。
为了解决这个问题,我只找到了下面的这种传参方式:
1.路由文件
1 .state('list', { 2 url: '/list', 3 views: { 4 'main': { 5 templateUrl: 'modules/list/list.html', 6 controller: 'listCtrl' 7 } 8 } 9 }) 10 .state('person', { 11 url: '/person', 12 views: { 13 'main': { 14 templateUrl: 'modules/person/person.html', 15 controller: 'personCtrl' 16 } 17 } 18 }) 19 .state('detail', { 20 url: '/list/detail?:id', 21 views: { 22 'main': { 23 templateUrl: 'modules/detail/detail.html', 24 controller: 'detailCtrl' 25 } 26 } 27 }); 28 }]);
2.list.html
1 <div ng-repeat="lt in list"> 2 <a style="display:block;margin: 10px;" ui-sref="detail({id:lt.subId})">{{lt.subTitle}}</a> 3 </div>
3.detailController.js
1 .controller('detailCtrl', ['$scope', '$stateParams', 'dataService', function ($scope, $stateParams, dataService) { 2 $scope.id = $stateParams.id; 3 }]);
只有通过上面的这种方式传递参数,然后在详细页面中用$stateParams.id;接收,这样获取的参数才不会因为页面的刷新而消失。