Используя Ionic framework, я пытаюсь создать группу из трех кнопок, которые действуют как переключатели:
Если я нажму на "Завтрак", я бы хотел, чтобы обед и ужин вернулись в свое нормальное (белое) состояние, а завтрак превратился в синий.
С моим текущим кодом я не могу заставить эту функцию работать, хотя я могу заставить кнопки переключаться с цветом, слегка случайным образом (возможно, я просто не понимаю директиву ng-class
).
Вот мой код HTML:
<div class="bar bar-subheader">
<div class="button-bar">
<a class="button" ng-class="{'button-positive' : !isActiveB, 'none': isActiveB}" ng-click="active('breakfast')">Breakfast</a>
<a class="button" ng-class="{'button-positive' : !isActiveL, 'none': isActiveL}" ng-click="active('lunch')">Lunch</a>
<a class="button" ng-class="{'button-positive' : !isActiveD, 'none': isActiveD}" ng-click="active('dinner')">Dinner</a>
</div>
</div>
Мой JS:
$scope.active = function(meal) {
switch (meal) {
case 'breakfast':
$scope.$broadcast('slideBox.setSlide', 0);
$scope.isActiveB = $scope.isActiveB;
$scope.isActiveL = !$scope.isActiveL;
$scope.isActiveD = !$scope.isActiveD;
break;
case 'lunch':
$scope.$broadcast('slideBox.setSlide', 1);
$scope.isActiveB = !$scope.isActiveB;
$scope.isActiveL = $scope.isActiveL;
$scope.isActiveD = !$scope.isActiveD;
break;
case 'dinner':
$scope.$broadcast('slideBox.setSlide', 2);
$scope.isActiveB = !$scope.isActiveB;
$scope.isActiveL = !$scope.isActiveL;
$scope.isActiveD = $scope.isActiveD;
break;
}
};
Я могу поместить код в JSFidle, если вам нужна дополнительная информация и рабочее решение.
Спасибо за вашу помощь.
ПРИМЕЧАНИЕ. Я хотел бы сохранить мою функцию active()
и использовать директиву ng-class
, если это возможно, так как у меня есть много другого кода, зависящего от этой функции.