错误:初始化后无法更改选择的“多重”模式
Posted
技术标签:
【中文标题】错误:初始化后无法更改选择的“多重”模式【英文标题】:Error: Cannot change `multiple` mode of select after initialization 【发布时间】:2018-12-14 17:05:03 【问题描述】:错误图片:
<div fxFlex.gt-lg="100" fxFlex="100" *ngIf="requestAction == 'add'">
<div class="pb-1">
<md2-select placeholder="'WidgetType'|translate:lang" class="input_custom_width"(change)="widgetNode($event.value)" required>
<md2-option *ngFor="let widgetType of widgetTypeAry" [value]="widgetType.value">
widgetType.name
</md2-option>
</md2-select>
</div>
</div>
<div fxFlex.gt-lg="100" fxFlex="100" *ngIf="fieldsObj['node'] && showRequestAction" >
<div class="pb-1">
<md2-select placeholder="'Node'|translate:lang" [formControl]="editWidgetForm.controls['nodeId']" [(ngModel)]="nodeId" class="input_custom_width" [(multiple)]="isMultiNode" (change)="nodeChange($event.value)" required>
<md2-select-header>
<md-input-container class="input_custom_width">
<input mdInput type="text" placeholder="'Search'| translate:lang" [ngModelOptions]="standalone: true" [(ngModel)]="searchNode"/>
</md-input-container>
</md2-select-header>
<md2-option *ngFor="let node of nodesAry | filterPipe : searchNode" [value]="node.value">
node.name
</md2-option>
</md2-select>
<small *ngIf="editWidgetForm.controls['nodeId'].hasError('required') && editWidgetForm.controls['nodeId'].touched" class="mat-text-warn">'nodeReq'|translate:lang</small>
</div>
</div>
当我在选择下拉列表中使用多个时,它工作正常,但是当我使用 [multiple] 时,它仅适用于我的编辑表单,但不适用于添加表单。它给出了上述错误-错误:无法更改 multiple
之后的选择模式初始化。帮我解决这个问题。
【问题讨论】:
因为 mat-select 的多个属性不能动态改变,你可以初始化它,初始化后不要改变它。 @fatemefazli 谢谢你的回应。我能做些什么来解决这个问题。 你可以制作 stackblitz 来处理它吗? @fatemefazli 有什么办法可以解决这个问题。创建堆栈闪电战需要很长时间。 【参考方案1】:对于这个问题有一个非常难看的解决方法,将你的 mat-select 扭曲到 *ngif=true 中,并创建一个具有 multiple 属性的副本,包裹在 *ngif=!true 中
【讨论】:
我给了你+1,因为你的解决方案有效!角度材料团队必须允许我们动态改变它以上是关于错误:初始化后无法更改选择的“多重”模式的主要内容,如果未能解决你的问题,请参考以下文章
inotifywait 运行守护程序模式给出错误无法初始化 inotify
materializecss 1.0.0 在使用 jquery 更改 dom 后重新初始化 - 错误:TypeError:'instanceof' 的右侧不可调用
更改浏览器 Url Flutter 时无法导航到初始路由错误