Angular2 кнопка отключения

Я знаю, что в angular2 я могу отключить кнопку с [disable], например:

<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>

но могу ли я сделать это с помощью [ngClass] или [ngStyle]? Например:

<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>

Спасибо.

Ответ 1

Обновление

Мне интересно. Почему вы не хотите использовать привязку атрибута [disabled], предоставляемую Angular 2? Это правильный способ справиться с этой ситуацией. Я предлагаю вам перенести проверку isValid с помощью метода компонентов.

isValidForm() {
    return this.isValid;
}

<button [disabled]="!isValidForm()" (click)="onConfirm()">Confirm</button>

Проблема с тем, что вы пытались объяснить ниже

В принципе вы можете использовать ngClass здесь. Но добавление класса не ограничивало бы событие при стрельбе. Для включения события на действительном входе вам следует изменить код события click ниже. Так что onConfirm будет запущен только тогда, когда поле действительно.

<button [ngClass]="{disabled : !isValid}" (click)="isValid && onConfirm()">Confirm</button>

Демо здесь

Ответ 2

Я бы рекомендовал следующее.

<button [disabled]="isInvalid()">Submit</button>

Ответ 5

Я попытался использовать отключенный вместе с событием click. Ниже приведен фрагмент, принятый ответ также отлично работает, я добавляю этот ответ, чтобы привести пример того, как его можно использовать с отключенными и щелчками.

<button (click)="!planNextDisabled && planNext()" [disabled]="planNextDisabled"></button>

Ответ 6

Если вы используете реактивные формы и хотите отключить некоторый ввод, связанный с элементом управления формой, вы должны поместить эту логику disabled в код и вызвать yourFormControl.disable() или yourFormControl.enable()