2016-08-25 123 views
0

select元素我有兩個<select>元素:angular2,結合到另一個選擇元素的選擇

<select [(ngModel)]="model.SelectedSomeValue"> 
    <option *ngFor="let someValue of model.SomeValues">{{ someValue }}</option> 
</select> 

<select [(ngModel)]="model.SelectedSomeValue.SelectedOtherValue"> 
    <option *ngFor="let otherValue of model.SelectedSomeValue.OtherValues">{{ otherValue }}</option> 
</select> 

看來你不能在第二<select>綁定到model.SelectedSomeValue,因爲它從來沒有正確填充。它包含value,雖然通過指定[value]="value"可以預期存儲對象引用,但事實並非如此。那麼我們如何才能做到兩個<select>元素之間的綁定?

回答

1

如果我理解你的問題,你想要一個選擇器選擇一個類別和第二個選擇器來選擇類別內的選項?所以如果你改變選擇器1,那麼你會在選擇器2中得到不同的項目列表?

如果是這樣,那麼檢查此Plunker:https://embed.plnkr.co/UErCcJeX5ply1BXSjweY/

有在防止ngModel從某些瀏覽器工作beta版中的錯誤,以便確保您至少升級到的RC(在plunker是RC5)。

實質上,代碼是這樣的:

<p><select [(ngModel)]="selected"> 
    <option value=""></option> 
    <option *ngFor="let datum of data" [ngValue]="datum">{{datum.name}}</option> 
</select> 

<p><select [(ngModel)]="selected2"> 
    <option *ngFor="let val of selected?.value" [ngValue]="val">{{val}}</option> 
</select> 

和組分具有對象的數據的列表,並存儲在選擇並selected2選定的值的地方。第一個選擇器使用數據顯示選項(並將對象與子目錄一起存儲爲選項值)並綁定到所選變量。第二個選擇器使用selected.values創建選項,並將選擇存儲在selected2中。

+0

任何想法如何使第二選擇默認選擇第一項?當你從第一個選擇中選擇一個項目時,它似乎保持空白。 – RoninCoder

+0

在我的示例plunker(https://embed.plnkr.co/UErCcJeX5ply1BXSjweY/)中,我將所選屬性轉換爲訪問器,然後使用set方法將selected2強制爲正確的值: 'private _selected:any; set selected(src:any){ this._selected = src; this.selected2 = this._selected.value [0]; }; get selected():any {return this._selected; };' –

+0

它的工作角4 - 非常感謝(即使原始plnkr不起作用)關鍵是*選擇?。值*。這在Angular 1中還沒有出現過。官方文檔沒有幫助我。非常感謝! – honzajde

相關問題