Снимите все флажки в AngularJS

0

У меня возникли проблемы с поиском решения, которое позволяет мне просто отключить все флажки с помощью AngularJS. Я использую простой ng-repeat для создания флажков и хочу, чтобы кнопка очищала их все.

        <div class="form-group">  <!-- Checkbox Group !-->
                    <label class="control-label">What are your requirements</label>
                    <div class="checkbox" ng-repeat="block in blocks">
                      <label>
                        <input type="checkbox" ng-model='myModel' name="block" value="block" ng-change="filter(block)">
                        {{block}}
                      </label>
                    </div>
                </div>  

                <div> 
                    <input type="button" class="btn btn-primary " name="Clear" ng-click="reset()" value="Reset"> </input>
                </div>

Я несколько раз пытался изменить ng-модель, но продолжаю получать ошибки, так как я использую функцию ng-change. Есть ли способ, который я могу сделать функцией reset() в контроллере, чтобы очистить все флажки (даже если он находится в цикле for, итерации через каждый по имени)?

Для справки

$scope.blocks = ["Lambda","Tokenization","Hadoop"];
Теги:
checkbox
angular-ngmodel

2 ответа

1
Лучший ответ
   <div ng-controller="checkboxController">
 <ul>
  <li ng-repeat="item in Items">
  <label>{{item.Name}}
    <input type="checkbox" ng-model="item.Selected" />
  </label>
  </li>
 </ul>
<input type="button" value="UnCheck All" ng-click="checkAll(Items.length)" />
</div>

var app=angular.module("CheckAllModule", []);
app.controller("checkboxController", functioncheckboxController($scope) {
$scope.Items = [{
    Name: "Item one"
}, {
    Name: "Item two"
}, {
    Name: "Item three"
}];
$scope.checkAll = function (Count) {
  angular.forEach($scope.Items, function (item) {
     item.Selected = false;
    });
   };
   });

Проверьте это. Я думаю, это поможет вам

Демо-ссылка

  • 0
    спасибо что сработало!
0

Попробуйте этот метод.

var app = angular.module('plunker', []);

app.controller('mainCtrl', function($scope) {
$scope.blocks = ["Lambda","Tokenization","Hadoop"];
   $scope.checkBlocks = [];
  $scope.filter = function(b){
  
  }
  $scope.reset= function(){
    $scope.checkBlocks = [];
  }
  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="plunker" ng-controller="mainCtrl">
   <div class="form-group">  <!-- Checkbox Group !-->
                    <label class="control-label">What are your requirements</label>
                    <div class="checkbox" ng-repeat="block in blocks">
                      <label>
                        <input type="checkbox" ng-checked="checkBlocks[block]" ng-model='checkBlocks[block]' name="block" value="block" ng-change="filter(block)">
                        {{block}}
                      </label>
                    </div>
                </div>  

                <div> 
                    <input type="button" class="btn btn-primary " name="Clear" ng-click="reset()" value="Reset"> </input>
                </div>
  
</body>  

Ещё вопросы

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