angular - 当 ngOnInit 中的值更改时,ngIf 标志不更新 span 元素
问题描述
如果用户已成功创建帖子,我将显示一条消息。我在创建帖子后发出一个值,并在重定向组件的 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 没有改变。不过,登录闪现消息在登录后正确显示。
有人可以帮我吗?
解决方案
You need to add change detection.
Add
private changeDetect: ChangeDetectorRef
in constructor.
Add
this.changeDetect.detectChanges();
after you update the flags.
推荐阅读
- xpath - 在 tokenize() 的输出中查找位置
- angular - html文件角度中某些属性未定义的错误
- pyspark - Pyspark multiple when 条件和多次操作
- c# - 使用 EPPlus 查找冻结窗格
- php - Laravel 'auth' 中间件在反向代理后面运行时设置了错误的 'url.intended' 会话数据
- git - 滥用 Git 来实现 Event Store 架构?
- ansible - Ansible:在 postgres 中将角色附加到用户
- java - 我的 jScrollPane 在我的 AbstractTableModel 上不起作用
- python - 在没有 GoogleService-Info.plist 的情况下将调试符号上传到 Crashlytics
- eclipse-che - 无法在 kubernetes 上运行 eclipse che