Значение $ stateParams теряется при обновлении страницы в AngularJS - PullRequest
0 голосов
/ 01 июня 2018

У меня есть две страницы на моем сайте.Один из них - EventList, а другой - EventDetail.Когда я нажимаю на любое событие на странице EventList, оно перенаправляет меня на страницу EventDetail.Я взял EventId события, чтобы получить подробную информацию и заполнить соответствующие данные на странице EventDetail.Это происходит нормально, когда я делаю это впервые.Когда я обновляю страницу, EventId события стирается.Я использую ui-router для передачи EventId в качестве параметра состояния на страницу EventDetail.

StateRouter.JS

app.config(function ($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('home.eventlist', {
            url: '/eventlist',
            views: {
                'homedetailview':
                {
                    templateUrl: 'EventsPages/ListEvent.html',
                    controller: 'ctrlEventList'
                }
            }
        })
        .state('home.eventlist.eventdetail', {
            url: '/eventdetail',
            params: { paramOne: "defaultValueOne" },
            views: {
                'homedetailview@home':
                {
                    templateUrl: 'EventsPages/AddEvent.html',
                    controller: 'ctrlEventContent',

                }
            }
        })
})

EventList.HTML

<form class="form-main">
    <div class="div-main">
        <div class="gridBigStyle" ui-grid="gridEventList" ui-grid-pagination>
        </div>
    </div>
</form>

EventListController.JS

myApp.controller("ctrlEventList", ['$scope', function ($scope) {
    $scope.gridEventList = {
        data: 'eventlistdata',        
        columnDefs: [
            { field: 'SiteEventNumber', displayName: 'Event Number' },           
            { field: 'EventName', displayName: 'Event Name' },            
            { name: 'actions', displayName: 'Actions', cellTemplate: $scope.actions}
        ]
    }

    $scope.actions =
        '<a ui-sref=".eventdetail({paramOne:row.entity.EventId})"></a>';                  
}])

EventDetailController.JS

myApp.controller("ctrlEventContent", ['$scope', '$stateParams', function ($scope, $stateParams) {
    alert($stateParams.paramOne);
}])

Когда я обновляю страницузатем он показывает предупреждение как «defaultValueOne», которое упоминается как значение по умолчанию для StateParams.

Я искал net и вижу, что локальное хранилище может решить эту проблему, но я не знаю, как реализовать здесь и в чем заключается недостаток по сравнению сдругие опции.Было бы здорово, если бы на этом примере был приведен рабочий пример.

1 Ответ

0 голосов
/ 01 июня 2018

Если вы получаете некоторые значения из Params, то вы можете хранить эти данные в локальном хранилище или в виде $ rootcope (любой из них может помочь вам сохранить данные после обновления.) На самом деле $ StateParams используется для отправки данных от одного к другому.поэтому он хранит данные по одному, пока вы отправляете параметры, вот и все ... Надеюсь, вы получили свои баллы. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...