我試圖在數組中使用*ngFor
來設置窗體控件。根據用戶的不同,有時我會在Array中有1個對象,但有時候會有多個對象。如何在Angular中使用* ngFor設置formControlNames?
我的問題是,我想創建一個formControlName
使用循環,我可以但不知道如何在組件中設置窗體組驗證程序?只是將它們設置爲像下面那樣意味着如果只有1個對象,則在查找不存在的其他formControlName
時,該表單仍然無效。
所以,如果有名稱的第一個對象:「天」不是在列表中,「天」仍然會在this.form
和控件顯示出來:
陣:
indicators = [
{name:"Days",data:[250,1]},
{name:"Multiply Average",data:[3,.25,1]}
],
組件:
ngOnInit() {
this.form = this._fb.group({
"Multiply Average":['', Validators.compose([
Validators.required
])],
"Days":['', Validators.compose([
Validators.required
])],
});
};
溫度晚:
<span
*ngFor="let i of indicators">
{{i.name}}:
<md-slider
formControlName={{i.name}}
color="primary"
[max]=i.data[0]
[thumb-label]="true"
[step]=i.data[1]
[min]=i.data[2]>
</md-slider>
</span>
任何幫助將是巨大的
@ AJT_82感謝您的答覆。對不起,我應該更清楚。我希望能夠將可變數量的字典傳遞給指標數組。我知道它目前有兩個工作。如果我只傳遞'{name:「Days」,數據:[250,1]}',但是組件中的「Multiply Average」仍然會有表單控制。該模板只有'Days'的滑塊。有什麼方法可以像循環那樣動態更新這兩種類型?我不確定如果你不知道指標數組的長度是否可能?謝謝 – Nicholas
聽起來像你需要'FormArray',但我不能再說更進一步,因爲我不知道數組是如何看起來的,我不知道對象內的'data'數組是什麼。準確的預期產出是多少? formcontrol應該保留什麼值,只是名字? – Alex
好的謝謝。我會嘗試做一個plunkr來讓它更加清晰。我以前沒有做過,但應該能夠解決這個問題 – Nicholas