Кнопка отключения 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()