есть ли альтернатива для ng-disabled в angular2?


145

Я использую angular2 для разработки, и мне было интересно, есть ли альтернатива для ng-disabled angular2.

Например код ниже в angularJS:

<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>

Просто хотел узнать, как мне добиться этой функциональности? какие-либо входы?


15
[disabled] = "! nextLibAvailable" попробуйте это может помочь
— Mayur

Ответы:


278

Чтобы установить disabledсвойство trueили falseиспользовать

<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
Работает только на <button>,(это правда?), Что разумно. В противном случае получите сообщение об ошибке (т. Е. При попытке связать с <a>) «Невозможно связать с« отключен », так как это не известное свойство« а »`
— The Red Pea

4
Он работает на каждом элементе, который имеет disabledсвойство. См. Также stackoverflow.com/questions/35431188/angular
— Günter Zöchbauer

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

Вы должны использовать, nullчтобы удалить attr из HTML-элемента.


3
Для угловых> 2.x это правильный путь с использованием [attr.disabled]
— дол

12
attr.требуется только тогда, когда элемент не имеет disabledсвойства. Для таких элементов, как кнопки и элементы ввода, attr.это избыточно. Для элементов, которые не имеют disabledсвойства, привязка к которому имеет attr.disabledсмысл, только если вы обращаетесь к нему с помощью CSS, чтобы он выглядел как отключенный (указатель мыши, серые цвета, ...)
— Günter Zöchbauer

Да, это лучший способ, когда некоторые элементы не имеют отключенного свойства по умолчанию.
— Вирадж

Вы можете увидеть решение здесь - оно работает с этим атрибутом в ваших компонентах HTML [attr.aria-disabled]="myPropReflectingIfDisabled". Это добавит атрибут, aria-disabled="true"если myPropReflectingIfDisabledесть true.
— Netsi1964

6

Вот решение, которое я использую с анулярным 6.

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

плюс выше приведенный ответ

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

не работает для меня, плюс следует помнить об использовании null, потому что он ожидает bool.


[readonly] = "DateRelatedObject.bool_DatesEdit? true: false" работает с Angular 6+
— Somedev


0

Да Вы можете либо установить [disabled] = "true", либо, если это переключатель или флажок, вы можете просто использовать отключить

Для радио кнопки:

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

Для выпадающего списка:

<ng-select (selected)="someFunction($event)" [disabled]="true"></ng-select>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.