这里设置了新的值,在组件1订阅 到改变后的值。
创建service.module.ts
import { NgModule, ModuleWithProviders } from ‘@angular/core‘;
import { SomeSharedService } from ‘./global.service‘;
export {
SomeSharedService
}
@NgModule()
export class ServicesModule {
static forRoot():ModuleWithProviders{
return {
ngModule:ServicesModule,
providers:[SomeSharedService]
}
}
}
新建global.service.ts
import { Injectable } from ‘@angular/core‘
import { BehaviorSubject } from ‘rxjs‘;
@Injectable()
export class SomeSharedService {
public globalVar:BehaviorSubject<any[]> = new BehaviorSubject([]);
public pageLimit = 10;
}
在组件1中引入服务并获取值
... import { SomeSharedService } from ‘src/app/services/global.service‘; ..... constructor( private someSharedService: SomeSharedService ) { } ngOnInit() { this.someSharedService.globalVar.subscribe(d=>{ this.clumb = d; }) } .... }
在组件2中引入服务并设置值
import { SomeSharedService } from ‘src/app/services/global.service‘;
....
...
constructor(
private someSharedService$:SomeSharedService
) {}
getProjectName(id:Number){
this.someSharedService$.globalVar.next([‘我的项目‘,{id:id,name:res.data.project_name}]
}
....
}
这里设置了新的值,在组件1订阅 到改变后的值。
原文:https://www.cnblogs.com/mary-123/p/11206694.html