如何从另一个组件返回到另一个组件而不以角度重新加载组件?

Posted

技术标签:

【中文标题】如何从另一个组件返回到另一个组件而不以角度重新加载组件?【英文标题】:How to come back to a component from another without reloading the component in angular? 【发布时间】:2020-04-30 12:49:39 【问题描述】:

我有一个包含多个子组件的 Angular 组件。它还具有根据组件内的条件隐藏和显示组件的逻辑。 例如。

 <div *ngFor="let data of dataSource; let i=index">
 <child-component [dataOne]="data.one"></child-component>
 <mat-divider></mat-divider>
 <second-child-component [dataTwo]="data.two"></second-child-component>
 </div>

我想实现在不刷新页面的情况下向后导航并返回到之前位置的功能。

我通过在构造函数中注入Location 并使用它的back() 方法来做到这一点。但是它会重新初始化前一个组件。

我该怎么做?任何帮助将非常感激。谢谢!

【问题讨论】:

location.back() 仅适用于路线,而不适用于您要执行的操作。相反,您需要一种存储显示/隐藏组件的条件历史记录的方法。 【参考方案1】:

如果通过返回同一个地方你的意思是滚动到那里,你可以使用这样的东西:

  scroll(el: htmlElement) 
    el.scrollIntoView();
  

在this post中查看更多信息

如果你不想再次渲染数据,你可以尝试用 CSS 隐藏它 或者

使用position: absolutebottom:-10000 移出屏幕

display: None

【讨论】:

以上是关于如何从另一个组件返回到另一个组件而不以角度重新加载组件?的主要内容,如果未能解决你的问题,请参考以下文章

Vue-apollo 从另一个组件重新获取查询

单击按钮重新加载角度组件

如何在不刷新整个页面的情况下重新加载组件?

如何将类成员变量传递给另一个组件角度?

如何从另一个组件加载 vuejs 动态组件

如何从另一个组件重新渲染特定组件模板?角 2