如何在 select 下拉列表中应用占位符以及 angular 6 中的 [ngmodel]?

How to apply placeholder in select dropdown along with [ngmodel] in angular 6?

每当我使用 [(ngModel)] 时,第一个值变为空。但是当我删除 [(ngModel)] 时它工作正常。

 <select class="custom-select" id="campaignDropdown" [(ngModel)]="campaignInfo" placeholder="Select Campaign" (change)="hitApiFunction(campaignInfo)">
            <option value="" disabled selected>Select Campaign</option>
              <option *ngFor="let campData of campaigns" [ngValue]="campData"> 
                  {{campData.campaign_name}}
              </option>
            </select>

尝试在 component.ts 文件中为 campaignInfo 变量分配占位符文本。

例如

export class CampaignComponent{
 campaignInfo : any = "";
}

占位符为空的这种行为背后的原因是您在下拉列表中添加了 ngModel 并且它尚未分配任何文本。 它会为你工作,因为你有 option 标签值属性为 = ' ' 对于选项 Select Campaign 这就是为什么为 campaignInfo 变量分配空字符串。

作者:@Krishna Rathore

可以使用[value]=""选择隐藏

我已经在 Stackblitz

上创建了一个演示
<form role="form" class="form form-horizontal" (ngSubmit)="onSubmit()" #form="ngForm" ngNativeValidate>
    <div class="form-group row">
        <div class="col-xl-4 col-lg-6 col-md-12">
            <fieldset class="form-group">
                <label for="customSelect">Categories:</label>
                <select class="custom-select d-block w-100" id="Category" [(ngModel)]="Category" name="Category" required placeholder="d.ff">
                    <option hidden [value]=""  selected>Select one category </option>
                    <option *ngFor="let item of myBusinessList" [value]="item.id">{{item.name}}</option>
                </select>
            </fieldset>
        </div>
    </div>
    <button type="submit" class="btn btn-raised btn-danger">Save</button>
</form>

感谢所有尝试给出答案的人...现在工作正常,正确答案是...

<select class="custom-select" id="campaignDropdown" [(ngModel)]="campaignInfo" (change)="hitApiFunction(campaignInfo)">
            <option [value]="0" disabled selected>Select Campaign</option>
              <option *ngFor="let campData of campaigns" [ngValue]="campData"> 
                  {{campData.campaign_name}}
              </option>
            </select>

并在 ts 文件中
campaignInfo=0;