Как реализовать активный класс Bootstrap pills с Angular

#angularjs #twitter-bootstrap

#angularjs #twitter-bootstrap

Вопрос:

Я хочу создать набор таблеток со всеми состояниями с их количеством выборщиков, и я хочу, чтобы таблетка, на которую нажимают, становилась активной. Итак, моя неудачная попытка в этом вопросе заключается в следующем:

 <ul class="nav nav-pills">
    <li ng-class="{ active:tab.isSet(x.name) }" ng-repeat="x in states">
        <a href ng-click="tab.setTab(x.name)">{{x.name}} <span class="badge">{{x.elector}}</span></a>
    </li>
</ul>
  

И, если на то пошло, внутри моего контроллера у меня есть этот фрагмент кода:

 $scope.tab = "Alabama";

$scope.isSet = function(checkTab) {
    return $scope.tab === checkTab;
};

$scope.setTab = function(activeTab) {
    $scope.tab = activeTab;
};
  

Кстати, сначала я пытался сделать таблетки активными, сравнивая их индексы, но это не помогло. Было бы еще лучше, если бы вы могли помочь мне со способом сделать это, используя индексы. Прошу прощения, если для этого уже есть опубликованное решение, но я не смог его найти.

Заранее спасибо!

Ответ №1:

 <ul class="nav nav-pills">
    <li ng-class="{ 'active':tab.isSet(x.name) }" ng-repeat="x in states">
        <a href ng-click="tab.setTab(x.name)">{{x.name}} <span class="badge">{{x.elector}}</span></a>
    </li>
</ul>
  

Обратите внимание на кавычки вокруг active

Ответ №2:

Я нашел это, мне следовало удалить «вкладки» в «tab.isset(…)».

Комментарии:

1. Таким образом, область всегда присутствует в представлении. В JS вам нужно, scope.isSet() в html вам нужно isSet() , поскольку подразумевается область видимости