在Angular 7中,可以通过服务和组件之间的映射或插值来实现数据的传递。下面是一个示例:
首先,在你的服务中定义一个公共的可观察对象,用于存储响应的数据。例如,创建一个名为DataService的服务:
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private data: any;
setData(value: any) {
this.data = value;
}
getData(): Observable {
return of(this.data);
}
}
接下来,在你的组件中注入DataService,并使用它来获取数据。例如,在名为AppComponent的组件中:
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
template: `
Data from service: {{ data }}
`
})
export class AppComponent implements OnInit {
data: any;
constructor(private dataService: DataService) {}
ngOnInit() {
this.dataService.getData().subscribe(data => {
this.data = data;
});
}
}
在这个示例中,AppComponent通过订阅DataService中的数据来获取服务的响应。一旦数据发生变化,AppComponent将会接收到新的值,并将其赋值给data属性。然后,可以在组件的模板中使用插值来显示这个数据。
最后,在你的组件中使用DataService来更新数据。例如,在另一个组件中:
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-other',
template: `
`
})
export class OtherComponent {
constructor(private dataService: DataService) {}
updateData() {
const newData = // 获取新的数据
this.dataService.setData(newData);
}
}
在这个示例中,OtherComponent可以通过调用DataService的setData方法来更新数据。一旦数据被更新,AppComponent将会接收到新的值并显示在模板中。
通过这种方式,你可以将服务中的响应数据映射到组件,并在模板中进行插值显示。