Nous utilisons ng-select dans porject et je suis confronté au problème maintenant, je ne peux pas désactiver la fenêtre ng-select. Est-il possible de le désactiver avec du code natif ou dois-je trouver une solution personnalisée?
<ng-select
#changeowner
class="custom-owner"
[placeholder]="leagueOwner.full_name"
[clearSearchOnAdd]="true"
(change)="changeLeagueOwner($event)"
[clearable]="false"
[virtualScroll]="true"
[items]="adminLeagueMembers"
(scrollToEnd)="onAdminLoadScrollEnd()"
bindLabel="full_name">
</ng-select>
Comme indiqué dans d'autres réponses, vous pouvez utiliser l'option
[disabled]="booleanValue"
Cependant, vous aurez besoin d'un ensemble de valeurs formControlName ainsi que décrit ici .
Vous obtiendriez:
<!-- test-component.html -->
<ng-select [disabled]="myDisabledCondition" formControlName="myFormControl"
...>
</ng-select>
utilisation [disabled]="true"
<ng-select
[disabled]="true"
#changeowner
class="custom-owner"
[placeholder]="leagueOwner.full_name"
[clearSearchOnAdd]="true"
(change)="changeLeagueOwner($event)"
[clearable]="false"
[virtualScroll]="true"
[items]="adminLeagueMembers"
(scrollToEnd)="onAdminLoadScrollEnd()"
bindLabel="full_name">
</ng-select>
Avec le dernier attribut angular versions disabled
ne fonctionne pas bien avec formControlName
. Une façon de désactiver ng-select
avec formControlName
doit afficher readonly
zone de texte au lieu de la liste déroulante désactivée:
<div *ngIf="!disabledCondition">
<ng-select
#changeowner
formControlName="owner"
class="custom-owner"
[placeholder]="leagueOwner.full_name"
[clearSearchOnAdd]="true"
(change)="changeLeagueOwner($event)"
[clearable]="false"
[virtualScroll]="true"
[items]="adminLeagueMembers"
(scrollToEnd)="onAdminLoadScrollEnd()"
bindLabel="full_name">
</ng-select>
</div>
<div *ngIf="disabledCondition">
<input formControlName="owner" class="form-control" type="text" readonly>
</div>
ng-select
A une méthode native qui ne figure pas dans la documentation officielle - setDisabledState(boolean)
Donc, j'ai utilisé
@ViewChild ('changeowner') changeOwnerRef: ElementRef;
et peut utiliser cette méthode comme ceci:
(<any>this.changeOwnerRef).setDisabledState(true);
utilisez l'attribut disable:
<ng-select
[disabled]="true">
</ng-select>
Si vous obtenez Can't bind to 'disabled' since it isn't a known property of 'ng-select'.
Vous devez référencer FormsModule
:
@NgModule({
imports: [FormsModule, NgSelectModule]
})