Кнопка отключения Angular2
Я знаю, что в angular2 Я могу отключить кнопку с
[disable], например:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
но я могу сделать это с помощью [ngClass] или [ngStyle] ? Вот так:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
спасибо.
10 ответов:
обновление
мне интересно. Почему вы не хотите использовать
[disabled]привязка атрибутов, предоставленная Angular 2? Это правильный способ справиться с этой ситуацией. Я предлагаю вам переместить вашisValidпроверьте через компонентный метод.<button [disabled]="! isValid" (click)="onConfirm()">Confirm</button>проблема с тем, что вы пытались объяснить ниже
в принципе, вы могли бы использовать
ngClassздесь. Но добавление класса не будет ограничивать событие от стрельбы. Для запуска события на действительном входе, вы должны изменитьclickкод события ниже. Так чтоonConfirmбудет уволен только тогда, когда поле является допустимым.<button [ngClass]="{disabled : !isValid}" (click)="isValid && onConfirm()">Confirm</button>
да
<div class="button" [ngClass]="{active: isOn, disabled: isDisabled}" (click)="toggle(!isOn)"> Click me! </div>https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
Если у вас есть форма, то также возможно следующее:
<form #f="ngForm"> <input name="myfield" type="text" minlenght="3" required ngModel> <button type="submit" [disabled]="!f.valid">Submit</button> </form>демо здесь: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
используя
ngClassчтобы отключить кнопку для недействительной формы не является хорошей практикой в Angular2, когда его предоставление встроенных функций для включения и отключения кнопки, если форма действительна и недействительна соответственно без каких-либо дополнительных усилий/логики.
[disabled]будет делать все, как если форма действительна, то она будет включена, и если форма недействительна, то она будет отключена автоматически.Пример:
<form (ngSubmit)="f.form.valid" #f="ngForm" novalidate> <input type="text" placeholder="Name" [(ngModel)]="txtName" name="txtname" #textname="ngModel" required> <input type="button" class="mdl-button" [disabled]="!f.form.valid" (click)="onSave()" name="">
Я попытался использовать disabled вместе с событием click. Ниже приведен фрагмент, принятый ответ также работал отлично, я добавляю этот ответ, чтобы дать пример того, как его можно использовать с отключенными и нажмите Свойства.
<button (click)="!planNextDisabled && planNext()" [disabled]="planNextDisabled"></button>
Если вы используете реактивные формы и хотите отключить некоторые входные данные, связанные с элементом управления формой, вы должны разместить это
disabledлогика в вас код и вызовyourFormControl.disable()илиyourFormControl.enable()