2

我们有 3 个基本导航显示隐藏选项卡视图 tab1、tab2、tab3。除此之外,还有来自sidenav的导航。

每个选项卡都动态加载组件,因此我们从一个组件导航到另一个组件。

其次,当从一个组件到另一个组件的导航结束并且用户单击Done按钮时,它应该降落在最初在 DOM 中打开的 tab1/tab2/tab3 上(即导航结束并降落在 tab1/tab2/tab3 视图上),当组件导航开始。

每当我们向后导航时,我们都无法加载前一个组件,因为每个组件都被不同的组件使用,并且可能是不同导航流程的一部分。

在这里,路由不仅仅涉及将组件加载到视图中。

考虑到给定的场景,是否有角度的方法来实现这一点?

这是stackblitz链接:

https://stackblitz.com/edit/angular-basic-starter-dfqnp3?file=src/app/app.component.ts

4

2 回答 2

1

使用Angular 路由器而不是创建/销毁组件。类似的东西/home/tab1 /home/tab2 settings/tab1可以帮助用户掌握他们在应用程序中的位置。

我赞同安东尼斯所说的有关状态管理的内容。根据您的应用程序的复杂性,我建议您使用NgRx 之类的库而不是服务来管理您的数据。

于 2019-05-12T09:53:00.493 回答
1

您似乎对状态管理有问题。

我建议您使用在层次结构中足够高的模块中声明的服务,以便它可以在您的组件中可见,您可以在其中保存数据。

您无法保留组件内部的状态,因为它已被销毁,但您可以使用服务来保留您的状态并将其作为组件中的输入传递,以便可以使用您想要的数据对其进行初始化。

同样,我会对您想要实现的导航逻辑做同样的事情。我将利用路由器参数来选择/显示所需的选项卡和一个服务,该服务将充当我的数据状态的存储

于 2019-05-12T09:38:04.933 回答