【问题标题】:ngIf false to true when i click on back button当我单击后退按钮时,ngIf false 为 true
【发布时间】:2020-07-16 08:03:04
【问题描述】:

我插入了一个 ngif 以使按钮在单击时不可见,然后转到第二个组件。在第二个组件中,我插入了一个返回按钮以返回到第一个组件,当我单击“返回”转到第一个组件时,ngif 仍然为假,因此继续保持不可见。你偶然知道如何返回并将ngif返回为true吗?

转到第二个组件的按钮

<div>
<a class="butLink" mat-raised-button *ngIf="isButtonVisible" (click)="isButtonVisible = false" 
routerLink="prenotazioni" >Prenota</a>
</div> 

带有后退按钮的第二个组件

<a class="butLink" mat-raised-button routerLink="">  Indietro</a>

非常感谢大家:)

【问题讨论】:

  • 那么 2 个按钮在 2 个独立的组件中?该组件中“isButtonVisible”的初始值是多少。初始化第一个组件时设置 isButtonVisible=true
  • 我怀疑这只会因为RouteReuseStrategy 而发生,难道prenotazioni 是路由器参数?
  • 如果它是两个组件并且您正在更改路由,则该值将重置为原始值。

标签: angular


【解决方案1】:

在第一个组件中添加以下两个选项之一

isButtonVisible = true;     // declare it as default true

ngOnInit() {
  this.isButtonVisible = true;  // Initialize it as true
}

注意:如果第一个和第二个组件在同一个父组件中,则将 isButtonVisible 变量移动到父组件,并将 默认值设为 true。当您移动到第二个组件时分配 false,并在您单击第二个组件中的后退按钮时再次分配 true..

【讨论】:

  • 谢谢,但不起作用...按钮处于错误和不可见状态:/
  • 当你回到第一个组件时,你能不能在 ngOnInit(isButtonVisible) 里面放一个 console.log 来检查值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 2012-08-01
  • 2013-10-29
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多