ngselect 中未显示占位符

you*_*ani 14 angular

我正在以我的角度形式(https://github.com/ng-select/ng-select)使用 ng-select 我正在使用的代码:

<ng-select
            formControlName="model"
            name="model"
            id="add_sheet_model"
            [items]="modelItems"
            [multiple]="false"
            [searchable]="false"
            bindLabel="value"
            bindValue="id"
            placeholder="select model"
          >
          </ng-select>
Run Code Online (Sandbox Code Playgroud)

问题是,当我输入 [multiple] = "false" 时,占位符不会显示,但是当我输入 [multiple] = "true" 时,会显示占位符,并且我不希望我的 ngselect 是多个。

PS:我正在使用 Angular 10 和 ngselect 5.0.3。

任何想法 ?

you*_*ani 22

我终于找到了解决方案,它与 [multiple] 属性无关,而是与初始化 FormGroup 的方式有关,这就是我启动它的方式:

model: new FormControl('', [Validators.required]),
Run Code Online (Sandbox Code Playgroud)

好吧,应该是这样的:

model: new FormControl(null, [Validators.required]),
Run Code Online (Sandbox Code Playgroud)

这个问题帮助我解决了这个问题https://github.com/ng-select/ng-select/issues/653


小智 11

我遇到了类似的问题,当我启动页面时,ng-select 输入\n在右上角显示 x \xe2\x80\x8b\xe2\x80\x8bin 。像那样:

\n

在此输入图像描述

\n

我发生这种情况是因为带有 formControlName 或 [(ngModel)] 的变量正在初始化一个值。像那样:

\n

*和ngModel

\n
nameExample = \'\';\n
Run Code Online (Sandbox Code Playgroud)\n

*和formControlName

\n
editForm = this.fb.group({\n   nameExample: [\'\'],\n});\n
Run Code Online (Sandbox Code Playgroud)\n

正确的方法是这样的:

\n

*和ngModel

\n
nameExample?: string;\n
Run Code Online (Sandbox Code Playgroud)\n

*具有反应形式:

\n
editForm = this.fb.group({\n   nameExample: [null],\n});\n
Run Code Online (Sandbox Code Playgroud)\n

html 中的示例如下所示:

\n

*和ngModel

\n
<ng-select class="custom" id="field_exemplo" name="nameExample" \n    appearance="outline" [trackByFn]="trackById" [items]="listNameExamples!" \n    [(ngModel)]="nameExample" bindValue="id" bindLabel="name" \n    [placeholder]="\'APP_TITLE | translate">\n</ng-select>\n
Run Code Online (Sandbox Code Playgroud)\n

*具有反应形式:

\n
<ng-select class="custom" id="field_exemplo" name="nameExample" \n    appearance="outline" [trackByFn]="trackById" [items]="listNameExamples!" \n    formControlName="nameExample" bindValue="id" bindLabel="name" \n    [placeholder]="\'APP_TITLE | translate">\n</ng-select>\n
Run Code Online (Sandbox Code Playgroud)\n