У меня возникла проблема, когда я использую предупреждение плагина внутри ng-repeat, которое находится внутри другого ng-repeat.
У меня есть экран, где я должен выбрать категорию, а затем мне нужно выбрать некоторые продукты. Эти выбранные продукты отображаются в плагине предупреждений, и у меня есть четыре кнопки для выбора уровня важности выбранного продукта.
Для каждой кнопки установите другой стиль, успех, информацию, предупреждение и опасность в контейнере предупреждений.
Проблема в следующем: если я выбираю две категории и одинаковые продукты для этих двух категорий, когда я изменяю стиль одного продукта, другой тот же продукт также устанавливает стиль.
Мой код:
<div style='position:relative; top:0px; left:0px;' ng-repeat="cid in listaCidSelected[$index]">
<alert type="{{cid.type}}" close="removerCid(tuss, cid, $index)">
{{cid.CIDSC_DS_DESCRICAO}}
<button class="btn btn-xs btn-outline btn-primary" ng-click="definirTipoCid('success', cid, $index)"><label>Sem Importância</label></button>
<button class="btn btn-xs btn-outline btn-info" ng-click="definirTipoCid('info', cid, $index)"><label>Média</label></button>
<button class="btn btn-xs btn-outline btn-warning" ng-click="definirTipoCid('warning', cid, $index)"><label>Grave</label></button>
<button class="btn btn-xs btn-outline btn-danger" ng-click="definirTipoCid('danger', cid, $index)"><label>Gravíssima</label></button>
</alert>
</div>
Если у меня выбрано две или более категорий и я использую одни и те же продукты для каждой категории, оповещения об этом продукте повторяются в одном стиле: (type="{{cid.type}}"
)
Дополнение с помощью методов контроллера:
$scope.checkAssociarCidHandler = function(tuss, index, event){
$scope.listaCheckCid[index] = !$scope.listaCheckCid[index];
event.currentTarget.innerHTML = $scope.listaCheckCid[index] ? "Finalizar Associação" : "Associar Motivo(s)";
// Seleciona os checks com as CIDs ja selecionadas
if ($scope.listaCheckCid[index]){
for (var i = 0; i < $scope.listaTussSelected.length; i++) {
if ($scope.listaTussSelected[i].TUSSPR_CD_CODIGO == tuss.TUSSPR_CD_CODIGO){
for (var j = 0; j < $scope.listaCidSelected[i].length; j++) {
document.querySelector("#ckItemCheckT" + tuss.TUSSPR_CD_CODIGO + 'C' + $scope.listaCidSelected[i][j].CIDSC_CD_CODIGO).checked = true;
}
break;
}
}
}
}
$scope.checkCidHandler = function(cid, tuss, event){
for (var i = 0; i < $scope.listaTussSelected.length; i++) {
if ($scope.listaTussSelected[i].TUSSPR_CD_CODIGO == tuss.TUSSPR_CD_CODIGO){
// Associa uma CID
if (event.currentTarget.checked){
cid.type = "info";
$scope.listaCidSelected[i].push(cid);
}else{
// Desassocia uma CID
for (var j = 0; j < $scope.listaCidSelected[i].length; j++) {
if ($scope.listaCidSelected[i][j].CIDSC_CD_CODIGO == cid.CIDSC_CD_CODIGO){
$scope.listaCidSelected[i].splice(j, 1);
break;
}
}
}
break;
}
}
}
// Define a cor da CID
$scope.definirTipoCid = function(tipo, cid, index){
cid.type = tipo;
}
У кого-нибудь есть идеи? Спасибо.