Chaque fois que j'utilise [(ngModel)] la première valeur devient vide. mais quand je retire [(ngModel)] ça marche bien.

 <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>
0
Amit kumar 6 nov. 2019 à 14:26

2 réponses

Par @Krishna Rathore

Vous pouvez utiliser [value] = "" selected hidden

J'ai créé une démo sur 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>
1
Eudz 6 nov. 2019 à 11:36

Essayez d'attribuer la variable campaignInfo avec le texte d'espace réservé dans votre fichier component.ts.

Par exemple

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

La raison derrière un tel comportement de l'espace réservé étant vide est que vous ajoutez ngModel dans votre liste déroulante et qu'il n'est pas encore affecté avec du texte.

1
Stak 6 nov. 2019 à 11:35