¿Hay alguna alternativa para ng-disabled en angular2?


145

Estoy usando angular2 para el desarrollo y me preguntaba si hay alguna alternativa para ng-disabledangular2.

Por ej. El siguiente código está en 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>

Solo quería saber ¿Cómo puedo lograr esta funcionalidad? alguna entrada?


15
[disabled] = "! nextLibAvailable" intente esto podría ayudar
mayur

Respuestas:


278

Para establecer la disabledpropiedad trueo falseusar

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

55
Solo funciona <button>,(¿es eso cierto?), Lo cual es razonable. De lo contrario, aparece el mensaje de error (es decir, cuando intenta vincularse a un <a>) `No se puede vincular a 'deshabilitado' ya que no es una propiedad conocida de 'a' '
The Red Pea

44
Funciona en cada elemento que tiene una disabledpropiedad. Ver también stackoverflow.com/questions/35431188/angular
Günter Zöchbauer el

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

nullDebe usar para eliminar attr del elemento html.


3
Para angular> 2.x esta es la forma correcta, utilizando [attr.disabled]
Dale

12
attr.solo se requiere cuando el elemento no tiene una disabledpropiedad. Para elementos como botones y elementos de entrada attr.es redundante. Para los elementos que no tienen una disabledpropiedad, un enlace attr.disabledsolo tiene sentido si lo direcciona con CSS para que parezca deshabilitado (puntero del mouse, colores grises, ...)
Günter Zöchbauer

Sí, esta es la mejor manera cuando algunos elementos no tienen la propiedad predeterminada deshabilitada.
Viraj

Puede ver una solución aquí : funciona con este atributo en sus componentes HTML [attr.aria-disabled]="myPropReflectingIfDisabled". Agregará un atributo aria-disabled="true"si myPropReflectingIfDisabledes así true.
Netsi1964

6

Aquí hay una solución que estoy usando con anular 6.

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

más arriba de la respuesta dada

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

no funcionó para mí y tenga en cuenta el uso de nulo porque espera bool.


[readonly] = "DateRelatedObject.bool_DatesEdit? true: false" funciona con Angular 6+
somedev

4

Para versiones angulares 4+ puedes probar

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

0

Sí, puede establecer [disabled] = "true" o si es un botón de opción o una casilla de verificación, simplemente puede usar desactivar

Para el botón de radio:

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

Para desplegable:

<ng-select (selected)="someFunction($event)" [disabled]="true"></ng-select>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.