Проблема с обновлением страницы

0

У меня проблема с моим угловым приложением, когда я обновляю страницу, он не показывает мне правильную страницу. Это похоже на то, как я передаю параметр на страницу неправильно.

Итак, у меня есть мое состояние в ui-router:

.state('stateDashboard', {
                    url: '/dashboard',
                    templateUrl: '/templates/dashboard.html',
                    controller: 'dashboardController'
        })

На странице, где у меня есть список панелей инструментов:

<div class="tile" ng-repeat="d in dashList" ng-class="[d.tileColour, d.tileSize]" ui-sref="stateDashboard" ng-click="setDashboard(d.id)">
    <div class="tile-body">
        <i class="fa fa-dashboard"></i>
    </div>
    <div class="tile-object">
        <div class="name">
            {{d.name}}
        </div>
    </div>
</div>

где setDashboard (id) устанавливает идентификатор в $ rootScope.dashId

и в моем контроллере для отображения панели мониторинга у меня есть:

Dashboards.getDashboard({ id: $rootScope.dashId }).$promise.then(function (result) {
        $rootScope.model = result;
     }

Итак, теперь, когда я обновляю страницу, $ rootScope.dashId не определен, поэтому не отображается страница правильно. Как я могу это исправить?

  • 0
    откуда вы получаете этот dashId?
  • 0
    из dashList, пожалуйста, посмотрите на второй фрагмент кода
Показать ещё 3 комментария
Теги:
angular-ui-router

1 ответ

1
Лучший ответ

Добавьте свой dashId в URL-адрес, чтобы его можно было передать при изменении панели инструментов и/или обновлении страницы. Поэтому избегайте вызова setDashboard, потому что он будет действовать только до перезагрузки страницы.

.state('stateDashboard', {
                    url: '/dashboard/:dashId',
                    templateUrl: '/templates/dashboard.html',
                    controller: 'dashboardController'
        })

Теперь внутри вашего контроллера вы можете получить его так. Не нужно использовать $ rootScope.

Dashboards.getDashboard({ id: $stateParams.dashId }).$promise.then(function (result) {
        $rootScope.model = result;
     }
  • 0
    Спасибо за ответ. Я пытался это сделать, но когда я нажимаю обновить или просто перейти на localhost: 28422 / dashboard / 29 , я получаю много «Uncaught SyntaxError: Неожиданный токен <» для всех моих файлов js
  • 0
    Это не похоже на связь. Это синтаксическая ошибка, возможно, вы где-то опечатка.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню