我有一项服务,当我单击一个按钮时,它将价值从一个组件传递到另一个组件。
当我在子组件上时,代码的第一行是记录我已发送的值。但是,仅当我退出页面时才记录该值,我不明白为什么?
这是我的服务:
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));
}
例如,当我返回上一页时,我只会得到该值,而不是登录到注释行中,最后要做的是记录该值。
答案 0 :(得分:1)
使用BehaviorSubject代替Subject