Eu tenho este código dentro de ng-repeat:
<a href="#" class="disabled" ng-click="doSomething(object)">Do something</a>
Como fazer uma condição de que o botão está desabilitado quando está class="disabled"
?
Ou existe uma maneira de fazer isso em Javascript para que fique assim:
$('.do-something-button').click(function(){
if (!$(this).hasClass('disabled')) {
do something
}
});
fonte
||
deveria ser&&
, embora funcione em seu plunk, se isDisabled é um método, os tubos duplos continuam verificando se há uma expressão válida. Este não é o caso com&&
isDisabled()
retornar falso, nenhum delesaction()
será chamado, nem a verificação de "uma expressão válida" continua.Podemos adicionar evento ng-click condicionalmente sem usar a classe desativada.
HTML:
fonte
Eu uso a expressão && que funciona perfeitamente para mim.
Por exemplo,
Se
vm.slideOneValid
for falso, a segunda parte da expressão não é disparada. Eu sei que isso é colocar lógica no DOM, mas é uma maneira rápida e suja de desabilitar o ng e clicar com o ng para posicionar bem.Apenas lembre-se de adicionar ng-model ao elemento para fazer o ng desativado funcionar.
fonte
Basicamente,
ng-click
primeiro verifica oisDisabled
e com base em seu valor, ele decidirá se a função deve ser chamada ou não.OU leia como
fonte
Você pode tentar usar
ng-class
.Aqui está meu exemplo simples:
http://plnkr.co/edit/wS3QkQ5dvHNdc6Lb8ZSF?p=preview
O status é um atributo personalizado do objeto, você pode nomeá-lo como quiser.
O
disabled
inng-class
é um nome de classe CSS, oobject.status
deve sertrue
oufalse
Você pode alterar o status de cada objeto em função
disableIt
.Em seu controlador, você pode fazer isso:
fonte
Eu também tive esse problema e simplesmente descobri que se você simplesmente remover o "#", o problema desaparece. Como isso :
fonte
href
não deve ser usado, use em seung-href
lugar.ng-href
só é necessário quando você precisa calcular o caminho dinamicamente. Se o caminho nunca mudar, tudohref
bem.