要从JSON中获取数组并将其传递给模型中的对象数组,您可以使用Angular的HttpClient模块来获取JSON数据并将其映射到模型对象。以下是一个示例代码:
首先,创建一个名为Item
的模型类,该类表示要映射的对象:
export class Item {
id: number;
name: string;
}
然后,创建一个名为DataService
的服务类,用于从JSON中获取数据并将其映射到对象数组:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { Item } from './item.model';
@Injectable()
export class DataService {
constructor(private http: HttpClient) { }
getItems() {
return this.http.get('your_json_url').pipe(
map((data: any[]) => {
return data.map(item => {
const newItem = new Item();
newItem.id = item.id;
newItem.name = item.name;
return newItem;
});
})
);
}
}
在上面的代码中,我们使用HttpClient
从JSON URL获取数据,并使用map
操作符将数据映射到Item
对象数组。
最后,在您想要使用这些数据的组件中,您可以使用DataService
来获取数据并将其分配给组件的成员变量:
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
import { Item } from './item.model';
@Component({
selector: 'app-items',
template: `
- {{ item.name }}
`
})
export class ItemsComponent implements OnInit {
items: Item[];
constructor(private dataService: DataService) { }
ngOnInit() {
this.dataService.getItems().subscribe(items => {
this.items = items;
});
}
}
在上面的代码中,我们订阅了dataService.getItems()
返回的Observable,并将返回的对象数组赋值给组件的items
成员变量。然后,我们可以在模板中使用*ngFor
指令来迭代对象数组并显示每个对象的名称。
请确保将DataService
提供给组件所在的模块,并在组件的构造函数中注入DataService
。还要确保将HttpClientModule
添加到您的应用程序模块的imports
数组中。
这样,您就可以从JSON中获取数组并将其传递给模型中的对象数组了。