以下是一个使用Angular 8的示例,演示如何通过HTTP请求获取数据后渲染子组件:
data.service.ts
的服务文件,并添加以下代码:import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(private http: HttpClient) { }
getData() {
return this.http.get('https://api.example.com/data');
}
}
DataService
并注入到构造函数中。然后,使用getData
方法获取数据,并将其传递给子组件。import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-parent',
template: `
Data from API:
`
})
export class ParentComponent implements OnInit {
data: any;
constructor(private dataService: DataService) { }
ngOnInit() {
this.dataService.getData().subscribe((response) => {
this.data = response;
});
}
}
child.component.ts
的子组件文件,并添加以下代码:import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
template: `
- {{ item.name }}
`
})
export class ChildComponent {
@Input() data: any[];
}
HttpClientModule
,并在providers
数组中添加DataService
。import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { ParentComponent } from './parent.component';
import { ChildComponent } from './child.component';
@NgModule({
imports: [BrowserModule, HttpClientModule],
declarations: [ParentComponent, ChildComponent],
providers: [DataService],
bootstrap: [ParentComponent]
})
export class AppModule { }
这样,当父组件初始化时,它将通过DataService
获取数据,并将其传递给子组件进行渲染。