У меня есть этот код внутри ng-repeat:
<a href="#" class="disabled" ng-click="doSomething(object)">Do something</a>
Как сделать условие, чтобы кнопка была отключена, когда она есть class="disabled"
?
Или есть способ сделать это в Javascript, чтобы он выглядел так:
$('.do-something-button').click(function(){
if (!$(this).hasClass('disabled')) {
do something
}
});
источник
||
должно быть&&
, хотя он работает в вашем plunk, если isDisabled - это метод, двойные каналы продолжают проверять допустимое выражение. Это не тот случай с&&
isDisabled()
возвращается false, ни одинaction()
вызов не будет выполняться, и проверка «на правильное выражение» не продолжается.Мы можем добавить событие ng-click условно, не используя отключенный класс.
HTML:
источник
Я использую выражение &&, которое мне идеально подходит.
Например,
Если
vm.slideOneValid
ложно, вторая часть выражения не запускается. Я знаю, что это помещает логику в DOM, но это быстрый грязный способ отключить ng и нажать ng-click, чтобы разместить красиво.Просто не забудьте добавить к элементу ng-model, чтобы ng-disabled работал.
источник
Обычно
ng-click
сначала проверяется,isDisabled
и на основе его значения он решает, следует ли вызывать функцию или нет.ИЛИ прочтите это как
источник
Вы можете попробовать использовать
ng-class
.Вот мой простой пример:
http://plnkr.co/edit/wS3QkQ5dvHNdc6Lb8ZSF?p=preview
Статус - это настраиваемый атрибут объекта, вы можете назвать его как хотите. В это имя класса CSS, то должно быть или
disabled
ng-class
object.status
true
false
Вы можете изменить статус каждого объекта в функции
disableIt
.В вашем контроллере вы можете сделать это:
источник
У меня тоже была эта проблема, и я просто обнаружил, что если вы просто удалите "#", проблема исчезнет. Как это :
источник
href
не следует использовать, используйтеng-href
вместо этого.ng-href
необходим только тогда, когда вам нужно динамически рассчитать путь. Если путь никогда не изменится,href
ничего страшного.