我有一個包含FormArray的人的表單。人們數組,那麼包含地址的FormArray這給我下面的JSON:Angular 2 - 從FormArray創建對象的數組
{
"people": [
{
"lastName": "Last-1",
"firstName": "First-1",
"middleName": "",
"addresses": [
{
"street": "Person1 - Address1"
},
{
"street": "Person1 - Address2"
}
]
},
{
"lastName": "Last-2",
"firstName": "Last-2",
"middleName": "",
"addresses": [
{
"street": "Person2 - Address1"
}
]
}
]
}
現在我想要把這些「人」,從形式和創建一個Person對象的數組
export class ReportPerson {
lastName: string = '';
firstName: string = '';
middleName: string = '';
addresses: PersonAddress[];
}
export class PersonAddress {
street: string = '';
}
當我使用console.log(form.get('people').value);我得到以下結果:
(2) [{…}, {…}]0: {lastName: "Last-1", firstName: "First-1", middleName: "",
addresses: Array(2)}
1: {lastName: "Last-2", firstName: "Last-2", middleName: "",
addresses: Array(1)}length: 2__proto__: Array(0)
但是不管我如何獲取數據,它說我的列表是未定義的。例如,以下內容返回它不能讀取未定義的「lastName」。
save(form: any) {
var reportPersonList: ReportPerson[] = new Array();
var people = form.get('people');
for (let i = 0; i < people.length; i++) {
console.log(people[i].lastName);
}
}
}
我的問題是,從FormArray中的數據創建人物對象數組的正確語法是什麼?我知道這是我錯過的一些基本的東西,但我已經習慣了C#,並且對於Typescript/Angular2來說是新的。
如果您能夠在控制檯中獲取值,然後使用form.get('people')。value,然後在var people = form.get('people')。value中使用相同的值。 – Sreemat
這是任何錯字錯誤? – Sreemat
我可以看到沒有錯字。智能感知不顯示任何。我可以無誤地添加/刪除數組。 我可以獲取'people'的值和長度,但只要我嘗試遍歷數組並訪問屬性,就會得到未定義的錯誤。 –