当用户单击电子邮件中的电子邮件验证链接时,会将他带到mywebsite.com/?token=tokenstringexample
如果令牌正确,则this.token = true;
设置为true,如果其为true,则应显示模型。
我在模板和控制台中打印了token的值,没有问题,它会更新打印正确的值,但是当用户单击电子邮件中的链接时,该模型不会显示,但是如果我在.ts文件或在html中设置token == undefined的值,然后刷新页面,然后模型显示。我想知道这是否是由于响应时间所致,页面正在加载,但是响应稍后出现,因此将其设置为true。
<div *ngIf="token==true">
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Congrats!<br> Your Account is now active</h4>
</div>
<div class="modal-body">
<p>You may now login</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
打字稿
declare var $: any;
export class HomeComponent implements OnInit {
token: boolean;
ngOnInit() {
this.chk.activateUser(token).subscribe( (res) => {
if(res) {
this.token = true;
console.log(this.token);
............
............
}
$(document).ready(function(){
$('#myModal').modal('show');
}
}
答案 0 :(得分:0)
您可以直接使用$('#myModal').modal('show');
来显示模态,而无需使用$(document).ready
函数。删除*ngIf
属性,因为changeDetection仅在所有行都执行后才会发生
ready()
方法用于使函数在
文档已加载答案 1 :(得分:0)
为什么要同时使用ngIf和JQuery隐藏/显示方法?将JQuery与较新的angular一起使用是不好的做法。尝试仅将* ngIf与令牌成员一起使用。