在Angular中,服务是单例对象,它在整个应用程序中只初始化一次。如果服务被重新创建,数据将会丢失。以下是解决此问题的代码示例:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class DataService {
private data: any;
setData(data: any) {
this.data = data;
}
getData() {
return this.data;
}
}
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent {
constructor(private dataService: DataService) {}
setData() {
this.dataService.setData('Some data');
}
getData() {
const data = this.dataService.getData();
console.log(data);
}
}
通过将服务提供给根级别,确保了在整个应用程序中只创建一次。这样,无论在哪个组件中使用该服务,都将共享相同的数据。