监听服务中的变量更新 Angular2/4
Listen to variable update in service Angular2/4
我在全球服务中有一些对象。其中一个组件使用套接字并更新此对象,但其他组件未得到任何更改。
计划服务
@Injectable()
export class PlanService {
private subject = new Subject<any>();
private planSubject = new Subject<any>();
public planList;
constructor( private socket: SocketClientService) {
this.socket.on('plan');
}
第一个组件更新计划列表
constructor(
private planService: PlanService,
private socket: SocketClientService,
public projectsService: ProjectsService,
private groupsService: GroupsService,
private calendarShare: CalendarDateShareService,
) {
this.socket.on('plan');
this.planService.getUserBusy().distinctUntilChanged().subscribe((data) => {
planService.planList = data; /* update */
});
第二个组件应该监听和更新
planService.planList
我是 Angular 的新人 2
您可以将您的 planList 变成一个主题,就像您那里的私人成员一样。
@Injectable()
export class PlanService {
...
public planList = new Subject<any>();
...
}
然后使用next传入一个新值:
...
this.planService.getUserBusy().distinctUntilChanged().subscribe((data) =>
{
this.planService.planList.next(data); /* update */
});
...
然后您可以订阅任何其他component/service
中的planList更改
...
this.planService.planList.subscribe(data => {
console.log(data) // planList Data
});
我在全球服务中有一些对象。其中一个组件使用套接字并更新此对象,但其他组件未得到任何更改。
计划服务
@Injectable()
export class PlanService {
private subject = new Subject<any>();
private planSubject = new Subject<any>();
public planList;
constructor( private socket: SocketClientService) {
this.socket.on('plan');
}
第一个组件更新计划列表
constructor(
private planService: PlanService,
private socket: SocketClientService,
public projectsService: ProjectsService,
private groupsService: GroupsService,
private calendarShare: CalendarDateShareService,
) {
this.socket.on('plan');
this.planService.getUserBusy().distinctUntilChanged().subscribe((data) => {
planService.planList = data; /* update */
});
第二个组件应该监听和更新
planService.planList
我是 Angular 的新人 2
您可以将您的 planList 变成一个主题,就像您那里的私人成员一样。
@Injectable()
export class PlanService {
...
public planList = new Subject<any>();
...
}
然后使用next传入一个新值:
...
this.planService.getUserBusy().distinctUntilChanged().subscribe((data) =>
{
this.planService.planList.next(data); /* update */
});
...
然后您可以订阅任何其他component/service
中的planList更改...
this.planService.planList.subscribe(data => {
console.log(data) // planList Data
});