#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()
, поскольку подразумевается область видимости