从一个组件向另一个组件发送价值时服务出现问题

时间:2019-07-18 09:09:18

标签: angular typescript

我有一项服务,当我单击一个按钮时,它将价值从一个组件传递到另一个组件。

当我在子组件上时,代码的第一行是记录我已发送的值。但是,仅当我退出页面时才记录该值,我不明白为什么?

这是我的服务:

export class DataService{

  public affaireSource = new Subject();
  currentAffaire = this.affaireSource.asObservable();

  constructor(){}

  changeAffaire(affaire : number){
    this.affaireSource.next(affaire);
  }

}

这是我的父组件代码:

export class EncoursComponent{

  constructor(private serviceData : DataService, private router : Router) {
  }


  //Fonction qui permet de dessiner les lignes et les points
  draw(id: any, events: any, options: any) {


    svg.selectAll("circle")



      //When I click, I send the data and I'm redirected
      .on("click",(d: any) => {


        this.serviceData.changeAffaire(4)

        this.router.navigate("/affecter");


      });
  }

这就是我应该获取数据的地方:

export class AffecterComponent implements OnInit {


  constructor(private data : DataService, private route : ActivatedRoute) {

    //Here, the data need to be logged
    this.data.currentAffaire.subscribe(affaire => console.log(affaire));

  }

例如,当我返回上一页时,我只会得到该值,而不是登录到注释行中,最后要做的是记录该值。

1 个答案:

答案 0 :(得分:1)

使用BehaviorSubject代替Subject