问题描述
我正在尝试在称为教师和学生的两条路线之间传递数据。两条路线都使用相同的组件并具有另一种视图。
我在将布尔值从老师传递给学生时遇到了问题,我正在建立这样的服务:
服务:
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 (将#修改为@)