Mam ten kod wewnątrz ng-repeat:
<a href="#" class="disabled" ng-click="doSomething(object)">Do something</a>
Jak ustawić warunek, że przycisk jest wyłączony, gdy ma class="disabled"
?
Czy jest sposób na zrobienie tego w JavaScript, który będzie wyglądał następująco:
$('.do-something-button').click(function(){
if (!$(this).hasClass('disabled')) {
do something
}
});
źródło
||
powinno być&&
, chociaż działa w twoim plunk, jeśli isDisabled jest metodą, podwójne potoki sprawdzają poprawne wyrażenie. Tak nie jest w przypadku&&
isDisabled()
zwróci false, to nie zostanieaction()
wywołane, ani sprawdzanie „prawidłowego wyrażenia” nie będzie kontynuowane.Możemy warunkowo dodać zdarzenie ng-click bez używania wyłączonej klasy.
HTML:
źródło
Używam wyrażenia &&, które idealnie mi pasuje.
Na przykład,
Jeśli
vm.slideOneValid
jest fałszywe, druga część wyrażenia nie jest uruchamiana. Wiem, że to jest wprowadzenie logiki do DOM, ale jest to szybki i brudny sposób na wyłączenie ng i ng-click, aby umieścić ładne.Pamiętaj tylko, aby dodać ng-model do elementu, aby funkcja ng-niepełnosprawnych działała.
źródło
Zasadniczo
ng-click
najpierw sprawdzaisDisabled
i na podstawie jej wartości zdecyduje, czy funkcja powinna zostać wywołana, czy nie.LUB przeczytaj to jako
źródło
Możesz spróbować użyć
ng-class
.Oto mój prosty przykład:
http://plnkr.co/edit/wS3QkQ5dvHNdc6Lb8ZSF?p=preview
Status to niestandardowy atrybut obiektu, możesz go nazwać dowolnie. W to nazwa klasy CSS, powinny być albo
disabled
ng-class
object.status
true
false
Możesz zmienić status każdego obiektu w funkcji
disableIt
.W swoim kontrolerze możesz to zrobić:
źródło
Miałem również ten problem i po prostu dowiedziałem się, że jeśli po prostu usuniesz „#”, problem znika. Lubię to :
źródło
href
nie powinny być używane, użyjng-href
zamiast nich.ng-href
jest potrzebny tylko wtedy, gdy chcesz dynamicznie obliczyć ścieżkę. Jeśli ścieżka nigdy się nie zmienia,href
jest w porządku.