2017-06-16 153 views
5

我試圖設置默認值我的選擇,所以我嘗試Angular2 [選擇]無法設置默認值?

[selected]= "selected_choice == 'one'" 

像這樣

但這並沒有工作。

人們說[選擇]不再工作,所以我也試過[attr.selected],但沒有工作以及..

這是我的一個選擇標籤

<select (change)="passValue3()" formControlName="school" class="form-control" required [(ngModel)]="selected_student" class="selectionbox"> 
    <option *ngIf="selected_student == undefined">학년 선택</option> 
    <option *ngFor="let gradetype of gradeTypes" [ngValue]="gradetype" [attr.selected] = "gradetype.gradeType === 'Middle'">{{gradetype.gradeName}}</option> 
</select> 

整個代碼我如何設置選擇的默認選項?

+0

這是基於綁定到'option'什麼,見https://stackoverflow.com/questions/44044746/selected-of-select-doesnt-work-as-excepted-in-angular2,也htt ps://stackoverflow.com/questions/44042797/angular-2-set-selected-on-a-select-option-dropdown/44043801#44043801欲瞭解更多信息。 – Pengyy

回答

-1

它不起作用,因爲您的選擇應該具有[(ngModel)]屬性。

您只需將此值設置爲您想要選擇的值,並且您應該很好。

+0

我已經有ngModel – Lea

+0

然後給它你想要選擇的值。 – trichetriche

+0

[selected] =「selected_student ==='Middle'」不起作用 – Lea

6

你需要做這樣的事情:

在標記:

<select placeholder="Sample select" [(ngModel)]="selectedItem"> 
        <option [value]="'all'">View All</option> 
        <option [value]="'item-1'">Item-1</option> 
        <option [value]="'item-2'">Item-2</option> 
       </select> 

在組件

selectedItem='all' 
+0

爲我工作。謝謝。 – himanshupareek66

0

這裏是我的解決方案:

示例是關於時區。從後端我的下一個對象項目:

activeItem = { "timezone": { "timeZoneHolder": "Europe", "region": "Europe/Paris (CEST)", "UTC": "UTC+1" }} 

而且從我的模型相同的項目看起來有點不同,因爲源變化:

{ "timeZoneHolder": "France", "region": "Europe/Paris", "UTC": "UTC +01:00" } 

正如你看到的有點不同。

因此,這裏是我的模型:

timeZones = [{ "timeZoneHolder": "France", "region": "Europe/Paris", "UTC": "UTC +01:00" }, { "timeZoneHolder": "French Polynesia", "region": "Pacific/Gambier", "UTC": "UTC -09:00" }] 

這裏是加價的選擇,就像一個魅力:

<select id="timezone" name="timezone" [(ngModel)]="activeItem.timezone"> 
<option [ngValue]="activeItem.timezone" [selected]="true" disabled hidden>{{activeItem.timezone.region}}</option> 
<option *ngFor="let timeZone of timeZones" 
     [ngValue]="{timeZoneHolder: timeZone.countryName, region: timeZone.timeZone, UTC: timeZone.UTC}"> 
    {{timeZone.timeZone}} 
</option> 

享受:)

1

你比較選項通過compareWith屬性來選擇,如果你使用角度4,可能會不會在角2上工作。

HTML文件:

<select [compareWith]="byAnimal" [(ngModel)]="selectedAnimal"> 
    <option *ngFor="let animal of animals" [ngValue]="animal"> 
    {{animal.type}} 
    </option> 
</select> 

TS文件

byAnimal(item1,item2){ 
    return item1.type == item2.type; 
} 

一個最好的soltion從這個link