Можно ли поддерживать активный статус элементов навигации верхнего уровня при переходе в дочерние состояния? - PullRequest
0 голосов
/ 05 июня 2019

У меня возникают трудности при настройке активного статуса для дочернего состояния в моих маршрутах:

    .state( 'sites', {
        url: '/sites',
        resolve: {
            auth: function resolveAuthentication( AuthResolver ) {
                return AuthResolver.resolve();
            }
        },
        templateUrl: 'app/components/sites/site.index.html',
        controller: 'SiteController',
        data: {
            requiresLogin: true,
        }
    })



    .state( 'sites.list', {
        url: '/list',
        resolve: {
            auth: function resolveAuthentication( AuthResolver ) {
                return AuthResolver.resolve();
            }
        },
        templateUrl: 'app/components/sites/site.list.html',
        controller: 'SiteListController',
        data: {
            requiresLogin: true,
        }
    })



    .state( 'sites.edit', {
        url: '/edit/:id',
        resolve: {
            auth: function resolveAuthentication( AuthResolver ) {
                return AuthResolver.resolve();
            },
            Site: ['$stateParams', 'SiteService',
                function( $stateParams, SiteService ) {
                    return SiteService.getOne( $stateParams.id );
                }],
            Locations: ['$stateParams', 'LocationService',
                function( $stateParams, LocationService ) {
                    return LocationService.get();
                }],
            SiteGroups: ['$stateParams', 'SiteGroupService',
                function( $stateParams, SiteGroupService ) {
                    return SiteGroupService.get();
                }]
        },
        templateUrl: 'app/components/sites/site.edit.html',
        controller: 'SiteEditController',
        params: {
            tab: 1
        },
        data: {
            requiresLogin: true,
        }
    })

Моя навигация построена из массива объектов:

    // Build the menu items
    $rootScope.menuItems = [
        {
            name: 'Dashboard',
            icon: 'fal fa-tachometer',
            url: 'home',
            authorisedGroups: ['Marketing'],
            divider: false,
            children: [],
            style: {},
            visible: true
        },
        {
            name: 'Sites',
            icon: 'fal fa-home',
            url: '',
            authorisedGroups: ['Marketing'],
            divider: false,
            children: [
                {
                    name: 'Maintenance',
                    icon: 'fal fa-edit',
                    url: 'sites.list',
                    visible: true
                },
                {
                    name: 'Site Groups',
                    icon: 'fal fa-chart-network',
                    url: 'siteGroups.list',
                    visible: true
                },
                {
                    name: 'Locations',
                    icon: 'fal fa-map-marker-alt',
                    url: 'locations',
                    visible: true
                }
            ],
            style: {},
            visible: true
        },
        ...

И для всехДля объектов в моем навигационном массиве статус active работает нормально с помощью команды:

ui-sref-active="active"

Моя проблема возникает, когда я в данный момент нахожусь в sites.list, и я нажимаю на элементперейти к sites.edit.Я пытаюсь сохранить статус active для sites.list.

Пример в sites.list:

enter image description here

Пример при нажатии на элемент списка и переходе к sites.edit:

enter image description here

Возможно ли это?

...