Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2015, 18:09
Новичок на форуме
Отправить личное сообщение для creep Посмотреть профиль Найти все сообщения от creep
 
Регистрация: 29.09.2015
Сообщений: 1

Восстановить состояние меню после обновления страницы.
Есть страничка, в правой части есть меню:
- Админ
Настройки
Пользователи
+ Счета
+ Товары

В меню может быть раскрыт всего один элемент. Все это работает. Не могу придумать как поймать обновление и восстановить.
На элемент "Админ" добавлял ng-click="Click("nbAdmin")" который в контролере NavigationController сохранял значение. А вот как и в какой момент восстановить?

Кусочек этого меню:
<nav class="navbar-default navbar-static-side" role="navigation" ng-controller="NavigationController">
    <div class="sidebar-collapse">
        <ul side-navigation class="nav metismenu" id="side-menu">
            <li class="nav-header">
                <div class="logo-element">                    
                </div>
            </li>
            <li>
                <a id="nbAdmin"><i class=" fa fa-sitemap"></i> <span class="nav-label">Админ</span><span class="fa arrow"></span></a>
                <ul class="nav nav-second-level collapse">
                    <li>
                        <a id="nbStaticDicts" ui-sref="staticDictionaries">Словари 1</a>
                    </li>
                </ul>
                <ul class="nav nav-second-level collapse">
                    <li>
                        <a ui-sref="staticDictionaries">Словари 2</a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
</nav>

Потом на этой странице в верхнем меню пользователь меняет язык приложения. По нажатию на иконку языка выполняется:
$scope.onLanguageChange = function (id) {
        $http.post('/Shared/ChangeLanguage', { Id: id }).
          then(function (response) {
              $rootScope.$broadcast('onLayoutRefresh');
          }, function (response) {
              $scope.error = "ERROR_TO_DO";
          });
    }

Событие ловиться в главном контроллере и вызывает обновление страницы:
$scope.$on('onLayoutRefresh', function (event, args) {
        $scope.NavigationUrl = "/Shared/Navigation?Ver=" + version();
        $scope.TopNavbar = "/Shared/TopNavbar?Ver=" + version();
        $scope.Footer = "/Shared/Footer?Ver=" + version();

        var versionIndex = $state.current.templateUrl.indexOf("?Ver=");
        if (versionIndex > 0) {
            $state.current.templateUrl = $state.current.templateUrl.substring(0, versionIndex + 5);
            $state.current.templateUrl += version();
        }
        
        $state.go($state.current, $stateParams, { reload: true, inherit: false });        
    });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает после обновления страницы werwolf4 Элементы интерфейса 2 08.05.2015 02:07
Не работают скрипты после обновления данных Dealaxer Общие вопросы Javascript 4 18.03.2015 17:12
Javascript срабатывает только после повторного обновления страницы solohub Общие вопросы Javascript 5 27.01.2015 22:54
Отловить уход со страницы без учета обновления страницы IgorN Events/DOM/Window 7 12.03.2013 16:55
firefox зависает после обновления страницы constantant Firefox/Mozilla 4 14.09.2009 12:30