Ich weiß das in angle2 eine Schaltfläche mit dem [disable]
Attribut deaktivieren kann
, zum Beispiel:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
aber kann ich es mit [ngClass]
oder machen[ngStyle]
? Wie so:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
Vielen Dank.
html
angular
angular2-template
angular2-forms
Nir Schwartz
quelle
quelle
Antworten:
Aktualisieren
Ich frage mich. Warum möchten Sie nicht
[disabled]
die von Angular 2 bereitgestellte Attributbindung verwenden? Es ist der richtige Weg, um mit dieser Situation umzugehen. Ich schlage vor, Sie verschieben IhrenisValid
Scheck über die Komponentenmethode.Das Problem mit dem, was Sie versucht haben, wird unten erklärt
Grundsätzlich könnte man
ngClass
hier verwenden. Das Hinzufügen einer Klasse würde das Auslösen des Ereignisses jedoch nicht einschränken. Um ein Ereignis bei einer gültigen Eingabe auszulösen, sollten Sie denclick
Ereigniscode wie folgt ändern . DasonConfirm
wird also nur ausgelöst, wenn das Feld gültig ist.Demo hier
quelle
button[disabled]
selektorbasiertes und deaktiviertes Ereignis angewendet. Das Ereignis wird so eingeschränktclick
, dass es auf der Schaltfläche ausgelöst wird . In derngClass
Klasse müssen Sie es selbst behandeln, wie ich in gezeigt habe obige Antwort ..[disabled]="!isValid"
isValid
Ich würde folgendes empfehlen.
quelle
Ja, du kannst
https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
quelle
Wenn Sie ein Formular haben, ist auch Folgendes möglich:
Demo hier: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
quelle
Verwenden von
ngClass
Deaktivieren der Schaltfläche für ungültiges Formular ist in Angular2 keine gute Vorgehensweise, wenn integrierte Funktionen zum Aktivieren und Deaktivieren der Schaltfläche bereitgestellt werden, wenn das Formular gültig bzw. ungültig ist, ohne dass zusätzliche Anstrengungen / Logik erforderlich sind.[disabled]
Wenn das Formular gültig ist, wird es aktiviert und wenn das Formular ungültig ist, wird es automatisch deaktiviert.Siehe Beispiel:
quelle
Möglicherweise kann der folgende Code helfen:
quelle
<button disabled="">
oder<button disabled="false">
wird in den meisten Browsern immer noch wie eine deaktivierte Schaltfläche behandeltIch habe versucht, deaktiviert zusammen mit Klickereignis zu verwenden. Unten ist das Snippet, die akzeptierte Antwort hat auch einwandfrei funktioniert. Ich füge diese Antwort hinzu, um ein Beispiel zu geben, wie sie mit deaktivierten und Klick-Eigenschaften verwendet werden kann.
quelle
Wenn Sie reaktive Formulare verwenden und einige mit einem Formularsteuerelement verknüpfte Eingaben deaktivieren möchten, sollten Sie diese
disabled
Logik in Ihren Code einfügen undyourFormControl.disable()
oder aufrufenyourFormControl.enable()
quelle
Ich denke, das ist der einfachste Weg
quelle
.ts Code
quelle