Tengo este código dentro de ng-repeat:
<a href="#" class="disabled" ng-click="doSomething(object)">Do something</a>
¿Cómo hacer una condición para que el botón esté desactivado cuando lo ha hecho class="disabled"
?
¿O hay alguna manera de hacerlo en Javascript para que se vea así:
$('.do-something-button').click(function(){
if (!$(this).hasClass('disabled')) {
do something
}
});
fuente
||
debería ser&&
, aunque funciona en su plunk, si isDisabled es un método, los tubos dobles siguen buscando una expresión válida. Este no es el caso con&&
isDisabled()
devuelve falso, no seaction()
llamará ni continuará la comprobación de "una expresión válida".Podemos agregar el evento ng-click condicionalmente sin usar la clase deshabilitada.
HTML:
fuente
Utilizo la expresión && que funciona perfectamente para mí.
Por ejemplo,
Si
vm.slideOneValid
es falso, la segunda parte de la expresión no se dispara. Sé que esto está poniendo lógica en el DOM, pero es una forma rápida y sucia de hacer ng-disabled y ng-click para colocar bien.Solo recuerde agregar ng-model al elemento para que ng-disabled funcione.
fuente
Básicamente,
ng-click
primero verifica elisDisabled
y, basándose en su valor, decidirá si la función debe llamarse o no.O léelo como
fuente
Podrías intentar usar
ng-class
.Aquí está mi ejemplo simple:
http://plnkr.co/edit/wS3QkQ5dvHNdc6Lb8ZSF?p=preview
El estado es un atributo personalizado del objeto, puede nombrarlo como desee.
El
disabled
inng-class
es un nombre de clase CSS,object.status
debe sertrue
ofalse
Puede cambiar el estado de cada objeto en función
disableIt
.En su controlador, puede hacer esto:
fuente
También tuve este problema y simplemente descubrí que si simplemente quita el "#", el problema desaparece. Me gusta esto :
fuente
href
no debe usarse, useng-href
en su lugar.ng-href
solo es necesario cuando necesitas calcular la ruta de forma dinámica. Si el camino nunca cambia,href
está bien.