2
votes

Comment désactiver la zone de saisie en utilisant la condition ngIf?

IF(pageModes[formModel.schema.mode] === pageModes[pageModes.View])
{
    -----------(disable the input box)-------------------
}
ELSE
{
    -----------(enable the input box)-------------------
}

3 commentaires

Vous devez désactiver le FormControl correspondant dans votre code TypeScript: angular.io/api/forms/AbstractControl# désactiver


Quand j'ai utilisé ceci, l'entrée est devenue invisible .. Je dois désactiver l'entrée


Double possible de Désactiver la saisie en fonction d'une condition


3 Réponses :


1
votes

Vous pouvez utiliser [disabled] = "*** your condition ***" à la place. Chaque attribut html sur les éléments d'entrée peut être lié en utilisant [attribut] .

Dans votre cas, ce serait:

<input pInputText 
    type="text" 
    formControlName="description" 
    class="form-control" 
    placeholder="Required" 
    [disabled]="pageModes[formModel.schema.mode] === pageModes[pageModes.View] />

Vous pouvez également utilisez le formControlName et désactivez-le dans le contrôleur.


3 commentaires

J'ai plusieurs conditions. désactiver le fonctionnement ne doit fonctionner que lorsque la condition "pageModes [formModel.schema.mode] === pageModes [pageModes.View]" se produit. Quand j'ai utilisé la condition que vous avez indiquée, cela affecte toutes les conditions.


Merci pour votre réponse .. J'ai utilisé [attr.disabled] = "pageModes [formModel.schema.mode] === pageModes [pageModes.View]? 'Disabled': null" .. Et maintenant ça marche


Vous êtes les bienvenus. Ensemble, nous pouvons en apprendre davantage, je suis donc heureux de vous aider Cependant, vous ne devriez pas avoir besoin d'utiliser attr.disabled. désactivé devrait suffire. N'hésitez pas à accepter ou à voter pour la réponse :)



-1
votes

ajoutez la propriété inputDisabled à votre composant

<input [disabled]="inputDisabled"  .../>

définissez cette propriété sur l'attribut d'entrée

export class Component{
   get inputDisabled(){
    return // add your disable logic here 
   }
}


0 commentaires

0
votes

Supprimez votre * ngIf et ajoutez-le désactivé à votre formControl:

// Whereever you're building your form:
description: new FormControl({value: '', disabled: pageModes[formModel.schema.mode] === pageModes[pageModes.View]})


1 commentaires

Pouvez-vous me donner une démo ??