angular - 下拉菜单不会再次打开

标签 angular primeng

如果我打开 PrimeNG 下拉列表并选择一个选项,它将不会再次打开。我对代码没有做任何特别的事情:我动态生成一个读取 JSON 文件的表单,这是有关下拉列表的部分:

<p-dropdown [formControlName]="f.controlName" *ngIf="f.type==='select'" [autoDisplayFirst]="false" [options]="f.values"></p-dropdown>

这是我在 JSON 文件中填充项目的方式(示例):

 {
  "controlName": "ClientIDCodeQualifier",
  "label": "create_order_panel.client_identification",
  "type": "select",
  "values": [
  {
    "label": "None",
    "value": "0"
  },
  {
    "label": "Algorithm",
    "value": "22"
  },
  {
    "label": "Firm or Legal Entity",
    "value": "23"
  },
  {
    "label": "Natural person",
    "value": "24"
  }],
}

当我第一次选择下拉列表的值后尝试再次打开下拉列表时,控制台上没有显示任何错误,但我仍然无法再次打开它。

更新

根据答案,这就是我现在正在尝试做的事情:

这是我的 HTML

<div *ngFor="let r of mainFields" class="p-grid p-col">
  <div *ngFor="let f of r" [ngClass]="getClass(f.size, f.type)">
  ....
  <p-dropdown [formControlName]="f.controlName" *ngIf="f.type==='select'" [autoDisplayFirst]="false" [options]="f.values" [(ngModel)]="dummyNgModel[f.controlName]"></p-dropdown>

这就是我试图在组件中执行的操作:

   ngOnInit(){
   //reading the JSON file and loading all into this.mainFields
   const formControls = {};
   this.mainFields.forEach((row) => {
            row.forEach((field) => {
                let controlOptions;
                let value = ''
                if (field.defaultValue !== undefined && field.defaultValue !== '')
                    value = field.defaultValue;
                if (field.type === 'select') {
                    this.dummyNgModel[field.controlName] = value;
                }
                controlOptions = new FormControl(value);
                formControls[field.controlName] = controlOptions;
            });
        });
        this.orderForm = this.fb.group(formControls);
        //...
      }

但是还是不行

最佳答案

遇到同样的问题,对话框中的 PrimeNG 下拉列表在选择后不会再次打开。
我检查了选项是否仍然具有值,它们确实具有值。
对我来说,使用 ngModel 或 name 没有什么区别。

appendTo="body" 添加到下拉列表中是我的解决方案。

关于angular - 下拉菜单不会再次打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902302/

相关文章:

angular - Angular 中的 MIME 类型问题

javascript - 使用 promise 内的数据更新 angular2 View /全局变量

Angular 2 将焦点放在组件加载的第一个表单字段上

css - Angular 4 - 以 45 度为步长旋转图像

angular - 单击行扩展 prime-ng 的 p 表行

angular - 从 ngContent 以 Angular 传递数据

node.js - 在 Angular 2 中创建构建时 JavaScript 堆内存不足错误

html - PrimeNG Turbotable 默认展开

angular - 如何从此 PrimeNG FullCalendar 动态删除事件(单击事件)?

css - 如果组件被破坏,如何删除特定的 scss?