在Angular 2中,可以使用服务(service)来在组件之间共享数据。以下是一个示例代码:
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
sharedData: string;
constructor() { }
}
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'component-a',
template: `
`
})
export class ComponentA {
constructor(private dataService: DataService) { }
updateSharedData() {
this.dataService.sharedData = "New shared data value";
}
}
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'component-b',
template: `
Shared Data: {{ sharedData }}
`
})
export class ComponentB {
sharedData: string;
constructor(private dataService: DataService) { }
ngOnInit() {
this.sharedData = this.dataService.sharedData;
}
}
这样,你就可以在组件B中访问和更新共享变量的值,即使组件A和组件B没有父子关系。注意,在使用共享数据之前,确保要提供DataService服务,可以在模块的providers数组中进行配置。