Переменная функция сложения / вычитания Angularjs

0

Мне нужно сделать кнопку переключения... когда вы нажмете один раз, она добавит деньги к общей цене, если вы снова нажмете кнопку и "отмените выбор", она вычтет эту сумму из общей суммы.

У меня есть этот HTML-код, который добавляет и удаляет класс для изменения цвета фона выбранной кнопки -

  <div class="col-md-4" ng-repeat="service in services_data track by $index">
      <div ng-class="showDetails[$index] ? 'panel-warning': 'panel-default'" class="panel">
        <button ng-click="$parent.showDetails[$index] = !$parent.showDetails[$index]; price(service.price, service.est_time_mins)" class="panel-heading btn"><span class="pull-left badge">$ {{service.price}}</span>{{service.name}}</button>
        <div class="panel-body">
         {{service.est_time_mins}} mins. {{service.style}}  
        </div>
      </div>
  </div>

и этот контроллер -

app.controller('AppointmentController', ['$scope','services', function($scope, services) {
var data = {};
data.fn = 'services';
services.getData(data).success(function(return_data){
  console.log(return_data);
  $scope.services_data = return_data;
});
var data = {};
data.fn = 'get_barbers';
services.getData(data).success(function(rd){
  $scope.barbers = rd;
  console.log(rd);
});
$scope.total_price = 0;
$scope.time = 0;
$scope.price = function(price, time){
  $scope.total_price = parseInt(price) + parseInt($scope.total_price);
  $scope.time = parseInt(time) + parseInt($scope.time);
} 
}]);

Наверное, довольно легко, но я не могу обвести вокруг себя голову. Благодарю.

Теги:

1 ответ

0

Используйте логический флаг:

$scope.selected = false;
$scope.add = function(price) {
    //If item is currently selected, subtract price
    if ($scope.selected) $scope.total_price -= price;
    //If item is currently NOT selected, add price
    else $scope.total_price += price;
    $scope.selected = !$scope.selected;
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню