Saya tahu bahwa di angular2 saya dapat menonaktifkan tombol dengan
[disable]
atribut, misalnya:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
tetapi dapatkah saya melakukannya dengan menggunakan [ngClass]
atau [ngStyle]
? Seperti:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
Terima kasih.
html
angular
angular2-template
angular2-forms
Nir Schwartz
sumber
sumber
Jawaban:
Memperbarui
Aku bertanya-tanya. Mengapa Anda tidak ingin menggunakan
[disabled]
pengikatan atribut yang disediakan oleh Angular 2? Ini cara yang benar untuk menghadapi situasi ini. Saya usulkan Anda memindahkanisValid
cek melalui metode komponen.Masalah dengan apa yang Anda coba dijelaskan di bawah ini
Pada dasarnya Anda bisa menggunakan di
ngClass
sini. Tetapi menambahkan kelas tidak akan membatasi pengaktifan acara. Untuk mengaktifkan acara pada input yang valid, Anda harus mengubahclick
kode acara di bawah ini. SehinggaonConfirm
akan dipecat hanya jika field valid.Demo Disini
sumber
button[disabled]
acara berbasis selektor & dinonaktifkan akan membatasiclick
acara untuk dijalankan pada tombol .. dingClass
kelas hal yang perlu Anda tangani sendiri, seperti yang saya tunjukkan di jawaban di atas ..[disabled]="!isValid"
isValid
bendera di UISaya akan merekomendasikan yang berikut ini.
sumber
ya kamu bisa
https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
sumber
Jika Anda memiliki formulir maka hal berikut juga dimungkinkan:
Demo di sini: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
sumber
Menggunakan
ngClass
untuk menonaktifkan tombol untuk formulir tidak valid bukanlah praktik yang baik di Angular2 ketika menyediakan fitur bawaan untuk mengaktifkan dan menonaktifkan tombol jika formulir masing-masing valid dan tidak valid tanpa melakukan upaya ekstra / logika.[disabled]
akan melakukan semua hal seperti jika formulir valid maka itu akan diaktifkan dan jika formulir tidak valid maka itu akan dinonaktifkan secara otomatis.Lihat Contoh:
sumber
Mungkin kode di bawah ini dapat membantu:
sumber
<button disabled="">
atau<button disabled="false">
masih ditangani seperti tombol yang dinonaktifkan di sebagian besar browserSaya mencoba menggunakan dinonaktifkan bersama dengan acara klik. Di bawah ini adalah cuplikannya, jawaban yang diterima juga berfungsi dengan baik, saya menambahkan jawaban ini untuk memberikan contoh bagaimana ia dapat digunakan dengan properti yang dinonaktifkan dan klik.
sumber
Jika Anda menggunakan formulir reaktif dan ingin menonaktifkan beberapa masukan yang terkait dengan kontrol formulir, Anda harus menempatkan
disabled
logika ini ke dalam kode dan panggilan AndayourFormControl.disable()
atauyourFormControl.enable()
sumber
Saya pikir ini adalah cara termudah
sumber
kode .ts
sumber