0
I’m using a checkbox in a table with Anglijs that is working incorrectly, there are 2 checkbox what is on top of the table (to select all), and the one of each row. When selecting the one for each line, I call a function that adds the object to the object list, if I uncheck I remove. If I select the checkboxMaster it selects everything, and my list of selections equals the entire list, if I deselect the list zero.So far all beauty, the prolema is that if I select all of them by selecting the top cb, and try to deselect some , it is destroying the table row.This problem only happens if I have selected them all before.
Look at the code:
//Adiciona um obj a lista a cada seleção de checkbox
function addListaAdicionar(elemento){
if(vm.listaAdicionar.indexOf(elemento) == -1){
vm.obj = {
codigo : elemento.codigo,
descricao: elemento.descricao,
};
vm.listaAdicionar.push(elemento);
}
else{
//Remove o elemento da lista se desmarcar
vm.listaPoderAdicionar.splice(vm.listaPoderAdicionar.indexOf(elemento) , 1);
}
}
//Função para seleção de todos os checkBox
function selecionarTudo() {
if(vm.selecionaTudo) {
vm.selecionaTudo = false;
} else {
vm.selecionaTudo = true;
}
angular.forEach(vm.listaObj, function (obj) {
obj.selecionado = vm.selecionaTudo;
});
//se desmarcar o cbTodos zera a lista
if(vm.selecionaTudo == false)
vm.listaAdicionar = [];
else
vm.listaAdicionar = vm.listaObj;
}
HTML:
<table id="tableExport" class="tableScrollable table genericTable table-striped tbPadrao" st-table="vm.listaObj" st-safe-src="vm.listaObjOrdenavel" style="width: 100%">
<thead>
<tr>
<th width="20px">
<input type="checkbox" data-ng-model = "vm.selecionaTudo" id="cbMaster"
data-ng-click = "vm.selecionarTudo()">
</th>
<th class="st-sort-default" st-sort="codigo" width="75px">
Código
</th>
<th class="st-sort-default" st-sort="descricao" >
Descricao
</th>
</tr>
<tr>
<th></th>
<th>
<input style="width: 100%;" type="text" st-search="codigo" />
</th>
<th>
<input type="text" style="width: 100%;" st-search="descricao" />
</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="obj in vm.listaObj">
<td text-align: right;"> <input type="checkbox" name="cbRow" data-ng-model = "obj.selecionado" data-ng-click="vm.addPoderListaAdicionar(obj );"></td>
<td text-align: right;">{{obj .codigo}}</td>
<td text-align: left;">{{obj .descricao}}</td>
</tr>
</tbody>
</table>
</div>
The problem is only when I select All of you and try to clear one, instead of just one of you splice into the list, it’s destroying the table row together.
Post the html please
– Felippe Tadeu
Posted.........
– War Lock
You are removing the object from the list, it would be enough just you instead of splice, change the value of the property
selecionado– Felippe Tadeu
Why are you controlling this way the control of selected ?
vm.listaObjand in the click event you just pass the$indexand within the function you do:this.listaObj[index].selecionado = !this.listaObj[index].selecionado– Felippe Tadeu
You can try to assemble an answer using my code?
– War Lock