在角的两个路线之间共享数据

问题描述

我正在尝试在称为教师和学生的两条路线之间传递数据。两条路线都使用相同的组件并具有另一种视图。

我在将布尔值从老师传递给学生时遇到了问题,我正在建立这样的服务:

服务:

 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...