如何解决在角的两个路线之间共享数据
我正在尝试在称为教师和学生的两条路线之间传递数据。两条路线都使用相同的组件并具有另一种视图。
我在将布尔值从老师传递给学生时遇到了问题,我正在建立这样的服务:
服务:
import {Injectable} from "@angular/core";
import { BehaivorSubject,Observable } from 'rxjs';
@Injectable({
providedIn: "root",})
export class MainServicesService {
private myBbsubject = new BehaviorSubject<boolean> (false);
myBsObs = this.myBbsubject.asObservable();
constructor(){}
Camera( isCamera: boolean) {
this.myBbsubject.next(isCamera)
}
}
学生:
import { Component,OnInit} from '@angular/core';
import { MainServicesService } from 'src/app/services/main-services.service';
@Component({
selector: 'app-teachers',templateUrl: './teachers.component.html',styleUrls: ['./teachers.component.css']
})
export class StudentComponent implements OnInit,OnDestroy {
constructor(private mainService: MainServicesService) {
}
ngOnInit(): void {
this.mainService.myBsObs.subscribe(profile =>console.log('teachers',profile));
}
}
老师:
import { Component,OnInit} from '@angular/core';
import { MainServicesService } from 'src/app/services/main-services.service';
@Component({
selector: 'app-teachers',template:`<button (click)="Camera()">Camera</button>`,styleUrls: ['./teachers.component.css']
})
export class TeachersComponent implements OnInit,OnDestroy {
constructor(private mainService: MainServicesService) {
}
ngOnInit(): void {
this.mainService.myBsObs.subscribe(profile =>console.log('teachers',profile));
}
Camera(){
this.isCamera = !this.isCamera;
this.mainService.Camera( this.isCamera);
}
}
当我喜欢Camera的按钮时,Subject将布尔值直接发送给Camera的函数,而behaivorSubject触发了下一个状态。但是我的路由器模块路由的不能按预期工作。学生组件将false设置为默认值,而不像老师那样进行更新; (老师将订阅的状态更改为true,但是学校的订阅未在订阅内部进行更新)我正在尝试(在app.component.ts之类的组件中工作正常,但使用路由器插座却无法正常工作) )我该如何解决这个问题呢??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。