禁用 angular 共 select window
disable angular ng-select window
我们在项目中使用 ng-select,但我遇到了无法禁用 ng-select window 的问题。是否可以使用本机代码禁用它,或者我是否需要找到一些自定义解决方案?
<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>
使用[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>
ng-select
具有官方文档中未包含的本地方法 -
setDisabledState(boolean)
所以,我用了
@ViewChild ('changeowner') changeOwnerRef: ElementRef;
并且可以像这样使用这个方法:
(<any>this.changeOwnerRef).setDisabledState(true);
如其他回复所述,您可以使用选项
[disabled]="booleanValue"
但是,您将需要一个 formControlName 值设置以及描述 here。
你会得到:
<!-- test-component.html -->
<ng-select [disabled]="myDisabledCondition" formControlName="myFormControl"
...>
</ng-select>
使用禁用属性:
<ng-select
[disabled]="true">
</ng-select>
如果你得到Can't bind to 'disabled' since it isn't a known property of 'ng-select'.
你必须参考FormsModule
:
@NgModule({
imports: [FormsModule, NgSelectModule]
})
最新 angular 版本 disabled
属性与 formControlName
不兼容。
使用 formControlName
禁用 ng-select
的一种方法是显示 readonly
文本框而不是禁用的下拉列表:
<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>
如果您正在使用 Angular 反应形式并尝试使用以下代码禁用 ng-select 那么抱歉,它不会在某种情况。如果您使用的是 formControlName 那么它不会工作,但在 [(ngModel)] 情况下工作。
[disabled] = true
最好的方法是使用响应式表单控件。
this.createReactiveform.controls['some_key'].disable(true);
如果您使用的是 reactForms,禁用输入的正确方法是使用:
formGroup.get('controlName').disable()
如果您使用的是 reactiveForms,禁用输入的正确方法是使用:
formGroup.get('controlName').disable()
如果您需要清空表单控件
formGroup.get('controlName').setValue("");
你应该使用[只读]输入
https://github.com/ng-select/ng-select#api
[readonly] boolean false no Set ng-select as readonly. Mostly used with reactive forms.
添加 [disabled]="true" 对我不起作用
但是将 [readOnly] 设置为 true 就可以了。基于文档,这是一种使用反应形式的方法:
[readonly] boolean false 否 将 ng-select 设置为只读。主要与反应形式一起使用。
我们在项目中使用 ng-select,但我遇到了无法禁用 ng-select window 的问题。是否可以使用本机代码禁用它,或者我是否需要找到一些自定义解决方案?
<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>
使用[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>
ng-select
具有官方文档中未包含的本地方法 -
setDisabledState(boolean)
所以,我用了
@ViewChild ('changeowner') changeOwnerRef: ElementRef;
并且可以像这样使用这个方法:
(<any>this.changeOwnerRef).setDisabledState(true);
如其他回复所述,您可以使用选项
[disabled]="booleanValue"
但是,您将需要一个 formControlName 值设置以及描述 here。
你会得到:
<!-- test-component.html -->
<ng-select [disabled]="myDisabledCondition" formControlName="myFormControl"
...>
</ng-select>
使用禁用属性:
<ng-select
[disabled]="true">
</ng-select>
如果你得到Can't bind to 'disabled' since it isn't a known property of 'ng-select'.
你必须参考FormsModule
:
@NgModule({
imports: [FormsModule, NgSelectModule]
})
最新 angular 版本 disabled
属性与 formControlName
不兼容。
使用 formControlName
禁用 ng-select
的一种方法是显示 readonly
文本框而不是禁用的下拉列表:
<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>
如果您正在使用 Angular 反应形式并尝试使用以下代码禁用 ng-select 那么抱歉,它不会在某种情况。如果您使用的是 formControlName 那么它不会工作,但在 [(ngModel)] 情况下工作。
[disabled] = true
最好的方法是使用响应式表单控件。
this.createReactiveform.controls['some_key'].disable(true);
如果您使用的是 reactForms,禁用输入的正确方法是使用:
formGroup.get('controlName').disable()
如果您使用的是 reactiveForms,禁用输入的正确方法是使用:
formGroup.get('controlName').disable()
如果您需要清空表单控件
formGroup.get('controlName').setValue("");
你应该使用[只读]输入
https://github.com/ng-select/ng-select#api
[readonly] boolean false no Set ng-select as readonly. Mostly used with reactive forms.
添加 [disabled]="true" 对我不起作用 但是将 [readOnly] 设置为 true 就可以了。基于文档,这是一种使用反应形式的方法:
[readonly] boolean false 否 将 ng-select 设置为只读。主要与反应形式一起使用。