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;接收,這樣獲取的參數才不會因為頁面的刷新而消失。