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.slideOneValides 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-clickprimero verifica elisDisabledy, 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
disabledinng-classes un nombre de clase CSS,object.statusdebe sertrueofalsePuede 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
hrefno debe usarse, useng-hrefen su lugar.ng-hrefsolo es necesario cuando necesitas calcular la ruta de forma dinámica. Si el camino nunca cambia,hrefestá bien.