Reputation: 562
When the index of the accommodation
is 0
then add the selected attribute
to the option. I am not sure what I am doing wrong.
The following is the code I am working with
<select formControlName="type" required>
<option value="{{ accommodation.id }}" *ngFor="let accommodation of ListAccommodationTypes; let i = index;" ng-selected="0 in i">{{ accommodation.name }}</option>
</select>
This is what it renders in the DOM
<select formcontrolname="type" required="" ng-reflect-name="type" class="ng-untouched ng-pristine ng-invalid">
<!--template bindings={
"ng-reflect-ng-for-of": "[object Object],[object Object],[object Object],[object Object],[object Object]"
}-->
<option ng-selected="0 in i" value="4" ng-reflect-value="4">Something 4</option>
<option ng-selected="0 in i" value="5" ng-reflect-value="5">Something 5</option>
<option ng-selected="0 in i" value="3" ng-reflect-value="3">Something 3</option>
<option ng-selected="0 in i" value="2" ng-reflect-value="2">Something 2</option>
<option ng-selected="0 in i" value="1" ng-reflect-value="1">Something 1</option>
</select>
I have also tried
<select formControlName="type" required>
<option value="{{ accommodation.id }}" *ngFor="let accommodation of ListAccommodationTypes; let i = index;" ng-selected="i==0">{{ accommodation.name }}</option>
</select>
<select formControlName="type" required>
<option value="{{ accommodation.id }}" *ngFor="let accommodation of ListAccommodationTypes; let i = index;" ng-selected="{{i==0}}">{{ accommodation.name }}</option>
</select>
Upvotes: 0
Views: 302
Reputation: 4565
Try this
<option *ngFor="let accommodation of ListAccommodationTypes; let i = index;"
[attr.selected]="i == 0 ? true : null">
{{ accommodation.name }}
</option>
Upvotes: 1