В AngularJS - несколько пользовательского интерфейса-сref' в один 'Уи-сref-активный'


HTML:

<!-- Order -->
<li ui-sref-active="active">
    <a ui-sref="order" class="main_link">
        <i class="fa fa-shopping-cart"></i>Order
    </a>
    <a ui-sref="order/create"><span class="plus">+</span></a>
    <div class="clearfix"></div>
</li>

Я хочу добавить class="active" на <li>.

Всякий раз, когда вы нажимаете на <a ui-sref="order/create"><span class="plus">+</span></a> это, то время class="active" добавить на <li>.

Но

Нажмите на кнопку <a ui-sref="order" class="main_link"><i class="fa fa-shopping-cart"></i>Order</a> что время class="active" не прибавляется <li>.

Ваша помощь будет оценена по достоинству.
2 3

2 ответа:

Способ реализации ui-router в настоящее время не представляется возможным сделать это. Вы не можете указать, для какого конкретного ui-sref будет активирован ui-sref-active. Это, как говорится, должно быть проще настроить ваш шаблон, чтобы обернуть эти ссылки таким образом, что вы можете иметь один ui-sref-active на один ui-sref. По крайней мере, легче, чем регулировать поведение ui-router.

Приложение.js

var app = angular.module('plunker', ['ui.router']);

app.config([ '$stateProvider', '$urlRouterProvider',
        function($stateProvider, $urlRouterProvider) {
            $urlRouterProvider.otherwise("/home/flow");
            $stateProvider.state("home", {
                url : '/home',
                templateUrl : 'home.html',
            }).state("contact", {
                url : '/contact',
                template : 'contact',
            });
        }]);
app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
});

Индекс.html

<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
  <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
  <p>Hello {{name}}!</p>
  <li class="top" ui-sref-active="heaader_active">
    <a ui-sref="home"><i class="fa fa-cloud-upload"></i>&nbsp;Home</a>
        <a ui-sref="contact"><i class="fa fa-cloud-upload"></i>&nbsp;contact</a>                            
    </li>
  <ui-view/>
</body>

</html>

Стиль.css

/* Put your css in here */

.heaader_active {
    background: red;
}

Более Подробная Проверка Здесь