angular2'de ng-engelli için herhangi bir alternatif var mı?


150

Geliştirme için angular2 kullanıyorum ve angular2 için herhangi bir alternatif olup olmadığını merak ediyordum ng-disabled.

Örn. aşağıdaki kod açısal JS'de:

<button ng-disabled="!nextLibAvailable" ng-click="showNext('library')" class=" btn btn-info btn-xs" title="Next Lib >> {{libraries.name}}">
    <i class="fa fa-chevron-right fa-fw"></i>
</button>

Bu işlevi nasıl elde edebilirim? herhangi bir girdi?


15
[devre dışı] = "! nextLibAvailable" bunu deneyin yardımcı olabilir
mayur

Yanıtlar:


286

Ayarlamak için disabledözelliğini trueveya falsekullanım

<button [disabled]="!nextLibAvailable" (click)="showNext('library')" class=" btn btn-info btn-xs" title="Next Lib"> {{libraries.name}}">
    <i class="fa fa-chevron-right fa-fw"></i>
</button>

5
Sadece <button>,makul olan (bu doğru mu?) Üzerinde çalışır . Aksi takdirde hata mesajını alın (yani <a>bir 'a' 'nın bilinen bir özelliği olmadığı için' devre dışı bırakılamaz 'a bağlanılamıyor
The Red Pea

4
Bir disabledözelliği olan her öğe üzerinde çalışır . Ayrıca bkz. Stackoverflow.com/questions/35431188/angular
Günter Zöchbauer

71
[attr.disabled]="valid == true ? true : null"

nullHtml öğesinden attr kaldırmak için kullanmanız gerekir.


3
Açısal> 2.x için bu, [attr.disabled] kullanımının doğru yoludur
dale

13
attr.yalnızca öğenin bir disabledözelliği olmadığında gereklidir . Düğmeler ve giriş öğeleri gibi öğeler attr.için gereksizdir. disabledÖzelliği olmayan elemanlar için attr.disabled, devre dışı görünmesi için CSS ile hitap ederseniz anlamlıdır (fare işaretçisi, gri renkler, ...)
Günter Zöchbauer

Evet, bazı öğelerin özellik varsayılanını devre dışı bırakmadığı durumlarda bu en iyi yoldur.
Viraj

Burada bir çözüm görebilirsiniz - bileşenlerin HTML'sinde bu öznitelikle çalışır [attr.aria-disabled]="myPropReflectingIfDisabled". Bu bir özellik katacak aria-disabled="true"eğer myPropReflectingIfDisabledolduğunu true.
Netsi1964

7

İşte anular 6 ile kullandığım bir çözüm.

[readonly]="DateRelatedObject.bool_DatesEdit ? true : false"

artı yukarıda verilen cevap

[attr.disabled]="valid == true ? true : null"

benim için işe yaramadı artı boş kullanmanın farkında olun çünkü bool bekliyor.


[readonly] = "DateRelatedObject.bool_DatesEdit? true: false" Angular 6+ ile çalışır
somedev

4

Açısal 4+ sürümler için deneyebilirsiniz

<input [readonly]="true" type="date" name="date" />

0

Evet Ya [devre dışı] = "true" ayarlayabilir ya da bir radyo düğmesi veya onay kutusu ise, devre dışı bırak seçeneğini kullanabilirsiniz.

Radyo düğmesi için:

<md-radio-button disabled>Select color</md-radio-button>

Açılır menü için:

<ng-select (selected)="someFunction($event)" [disabled]="true"></ng-select>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.