Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在Typescript中动态禁用或启用ng multiselect下拉列表_Angular_Typescript_Getelementbyid - Fatal编程技术网

Angular 如何在Typescript中动态禁用或启用ng multiselect下拉列表

Angular 如何在Typescript中动态禁用或启用ng multiselect下拉列表,angular,typescript,getelementbyid,Angular,Typescript,Getelementbyid,模板 <ng-multiselect-dropdown #Name [placeholder]="'Name'" [data]="data" formControlName="name" [settings]="myNameTexts"(onDeSelectAll)="onNameDeSelect($this)"> </ng-multiselect-dropdown> 当您使用反应式表单时,您可以通过禁用from控件的方法禁用任何表单控件,如下所示 t

模板

 <ng-multiselect-dropdown #Name [placeholder]="'Name'" [data]="data" 
    formControlName="name" [settings]="myNameTexts"(onDeSelectAll)="onNameDeSelect($this)"> 
  </ng-multiselect-dropdown>

当您使用反应式表单时,您可以通过禁用from控件的方法禁用任何表单控件,如下所示

this.form.get('name').disable()
如果您试图在模板中设置disabled属性,那么作者似乎没有正确实现控件访问器接口,虽然它可以工作,但您会收到警告

看起来您正在将disabled属性用于被动表单 指令。如果在中设置此控件时将disabled设置为true 在组件类中,禁用的属性实际上将在 这是给你的。我们建议使用此方法以避免“更改” 检查“错误”后

示例:form=newformgroup({first:newformcontrol({value: “Nancy”,已禁用:true},验证器。必需),最后:新建 FormControl('Drew',Validators.required)})

这只是解决了这个bug,所以为了保持表单控件的禁用值基,我们可以禁用表单控件禁用值的属性基

组成部分

 document.getElementById("#Name").disabled= false
  get disabled() {
    return this.myForm.get('city').disable
  }
模板

    <form [formGroup]="myForm">
        <ng-multiselect-dropdown
            name="city"
            [placeholder]="'Select City'"
            [data]="cities"
            formControlName="city"
            [disabled]="disabled"
            [settings]="dropdownSettings"
            (onSelect)="onItemSelect($event)">
        </ng-multiselect-dropdown>
   </form>

演示尝试使用

disabled="true"
它将禁用您的下拉列表。

应该更像:

<ng-multiselect-dropdown [disabled]="isDropdownDisabled" ...> 
  </ng-multiselect-dropdown>

只需在控件上使用CSS属性“pointer events:none”。

//在HTML中:我是说dynamicali,如何实现?我已经这样做了,但我不喜欢它,因为您会在控件中收到警告消息,此库的作者没有正确实现控件访问器接口这就是您正在使用的接口吗?我不明白问题是什么…当您使用反应式表单时,表单控件上的任何更改都会像disable一样自动反映到组件上,但在这里有一个bug检查此演示this
this.form.get('name').disable()
应将组件设置为禁用,而不在template@malbarmawi在这种情况下,您应该通过表单控件传递disabled,如下所示:这不是该控件的错误,这是因为您使用的是反应式表单,所以代码是错误的approach@codowo要求一个动态的解决方案是的,我们也可以动态添加样式/类。
public isDropdownDisabled = false;

someMethod() {
  this.isDropdownDisabled = true;
}