J'utilise AngularJS et option de filtre, comme ceci:Autoriser une case à cocher dans AngularJS
// Functions - Definitions
function filterByCategory(box) {
return (this.filter[box.cat1] || this.filter[box.videoYear] || noFilter(this.filter))? 'show':'not-click';
}
function filterByYear(box) {
return (this.filter[box.videoYear] || this.filter[box.cat1] || noFilter(this.filter))? 'year':'not-year';
}
function getCategories() {
return (self.boxes || []).
map(function (box) { return box.cat1; }).
filter(function (box, idx, arr) { return arr.indexOf(box) === idx; });
}
function getYear() {
return (self.boxes || []).
map(function (box) { return box.videoYear; }).
filter(function (box, idx, arr) { return arr.indexOf(box) === idx; });
}
function noFilter(filterObj) {
return Object.
keys(filterObj).
every(function (key) { return !filterObj[key]; });
}
Et ceci est mon HTML:
<li ng-repeat="cat in ctrl.getCategories()">
<input type="checkbox" name="{{cat}}" ng-model="ctrl.filter[cat]" id='{{$index}}' class='chk-btn styled-checkbox' checked/>
<label for='{{$index}}'>{{cat}}</label>
</li>
Ces codes fonctionne bien sur la page. Lorsque je clique sur un élément dans la case, il a ajouté la classe à ma liste:
<div data-toggle="modal" data-target="#dialogTestDialog{{$index}}" ng-click="Clear()" class="grid-item box {{box.class}} {{ctrl.filterByYear(box)}} {{ctrl.filterByCategory(box)}}" ng-style="{'background-color': '#'+box.colorCode}">
Ok, mais j'ai un petit problème. Maintenant, je peux sélectionner tous les éléments, mais il devrait être sélectionner un élément dans la liste de case à cocher et supprimer/ajouter une classe par connexes.
Comment puis-je le faire?
Pourquoi ne pas la radio bu tton? –
Parce que le bouton radio -je ne sais pas pourquoi- ne fonctionne pas dans ma structure. –
pouvez-vous faire une démo en direct pour cela? – C2486