Вы хоть представляете, почему это происходит?

<button type="button" class="btn btn-default" ng-click="showMoreFunc('academic')" >Academic</button>
<button type="button" class="btn btn-default" ng-click="showMoreFunc('appliedsciences')" >Applied Sciences</button>

Когда мы нажимаем на знак + , появляется панель с двумя кнопками. Для этих кнопок установлено значение по умолчанию . Но я хочу иметь функцию, которая устанавливает для кнопки значение основной всякий раз, когда clicked (активен), и возвращается к значению по умолчанию, когда она становится unclicked или нажата другая кнопка.

Как мне достичь этой функциональности?

2
Abhishek 24 Апр 2014 в 01:15

4 ответа

Лучший ответ

Просто используйте ng-class вместе с переменными, которые вы уже устанавливаете для переключения отображения:

<button type="button" ng-class="{'btn-primary': display.academic}" ng-click="showMoreFunc('academic')" >Academic</button>
<button type="button" ng-class="{'btn-primary': display.appliedsciences}" ng-click="showMoreFunc('appliedsciences')" >Applied Sciences</button>

Вот рабочая демонстрация: http://plnkr.co/edit/cAqxxmaS7pjfhfSgCsWL?p=preview

Примечание: я попытался объединить часть логики в функции showMoreFunc. Я думаю, это работает, но ваш исходный код отлично работал с ng-class:

$scope.showMoreFunc = function(view) {
  $scope.display.appliedsciences = (view == "appliedsciences" && !$scope.display.appliedsciences);
  $scope.display.academic = (view == "academic" && !$scope.display.academic);
}
5
j.wittwer 24 Апр 2014 в 03:14

Это будет работать

<button type="button" ng-class="{'btn-primary': display.academic}" ng-click="showMoreFunc('academic')" >Academic</button>
<button type="button" ng-class="{'btn-primary': display.appliedsciences}" ng-click="showMoreFunc('appliedsciences')" >Applied Sciences</button>
-1
Tunaki 7 Сен 2016 в 08:13