Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Как сделать вкладку активной, если разные маршруты? (https://javascript.ru/forum/angular/51446-kak-sdelat-vkladku-aktivnojj-esli-raznye-marshruty.html)

KOPC1886 06.11.2014 18:20

Как сделать вкладку активной, если разные маршруты?
 
Всем привет!)

Есть такая верстка


<div class="tabbable">
        <ul class="nav nav-tabs catalog" id="main-tab">
            <li class="catalog active">
                <a href="#/catalog/" class="catalog" data-target="#catalog" data-toggle="tab">
                    <span class="tab_catalog"></span>
                    Каталог сервисов
                </a>
            </li>
            <li class="favorites">
                <a href="#/favorites" class="a_favorites" data-target="#favorites" data-toggle="tab">
                    <span class="tab_favorites"></span>
                    Избранное
                </a>
            </li>
            <li class="applications"">
                <a href="#/applications" class="a_applications" style="height: 20px;
padding-right: 0;
padding: 13px 0px 0px 14px;" data-target="#applications" data-toggle="tab">
                    <span class="tab_applications"></span>
                    Статусы заявок
                    <span class="tab_task">
                        1
                    </span>
                </a>
            </li>
        </ul>
        <div class="tab-content service-catalog">
            <ng-view></ng-view>
        </div>
    </div>


И есть такой роутер
servicesCatalog.config(['$routeProvider', '$compileProvider', function ($routeProvider, $compileProvider) {
        $routeProvider.
            when('/catalog/:categoryId', {
                templateUrl: 'views/catalog.html',
                controller: 'Catalog'
            }).
            when('/favorites', {
                templateUrl: 'views/favorites.html',
                controller: 'Favorites'
            }).
            when('/applications', {
                templateUrl: 'views/applications.html',
                controller: 'Applications'
            }).
            when('/catalog/:categoryId/:serviceId', {
                templateUrl: 'views/service-detail.html',
                controller: 'Service-Detail'
            }).
            otherwise({
                redirectTo: '/catalog/:categoryId'
            });

        $compileProvider.urlSanitizationWhitelist(/^\s*(https?|mailto|file|tel|skype):/);
}]);


Как сделать, чтобы при маршруте when('/catalog/:categoryId/:serviceId' и when('/catalog/:categoryId' была активна вкладка catalog?

a.malitsky 06.11.2014 20:55

ng-class & $location.path()

KOPC1886 07.11.2014 08:36

a.malitsky,
а поточнее?
Вот так не работает

ng-class="{'active' : $location.path() == '/catalog'}"

как прописать условие $location.path() == /catalog/:categoryId/:serviceId
?

a.malitsky 07.11.2014 19:58

$location.path().indexOf('/catalog/') === 0
Если этого мало, то regexp.


Часовой пояс GMT +3, время: 00:12.