如果用户成功创建了帖子,我将显示一条即显消息。创建帖子后,我将发出一个值,并在重定向组件的ngOnInit中捕获该值,以更改用于显示即显消息的标志。
我在同一组件中还显示了另一条Flash消息,该消息将在用户成功登录后显示,并且运行正常。
ngOnInit() {
this.userSub=this.userService.loginStatusChanged.subscribe(
(data:{loginFlag:boolean, userId:string, userName:string})=>{
this.user = data.userName;
if(data.loginFlag){
if(this.previousRouteService.getPreviousUrl()=='/log-in'){
this.loginFlashMessageFlag=true;
setTimeout(()=>{
this.loginFlashMessageFlag=false;
},5000)
}
}
this.kavithaiService.kavithaiStatusChanged.subscribe(
(data:any)=>{
console.log(data);
this.createPostFlashMessageFlag = true;
setTimeout(()=>{
this.createPostFlashMessageFlag=false;
},5000)
}
)
}
)
}
HTML:
<span id="loginFlashMessage" @flashMessageAnimation *ngIf="loginFlashMessageFlag">வணக்கம், {{user}} !</span>
<span id="createPostFlashMessage" @flashMessageAnimation *ngIf="createPostFlashMessageFlag" >Flash Message</span>
kavithai服务订阅中的console.log(data)正确显示,但dom并未更改。登录后,登录Flash消息仍正确显示。
有人可以帮我吗?
答案 0 :(得分:0)
您需要添加更改检测。
添加
private changeDetect: ChangeDetectorRef
在构造函数中。
添加
this.changeDetect.detectChanges();
更新标志后。