查询组件模板

时间:2017-04-19 08:38:01

标签: angular redux angular2-services ngrx ngrx-effects

假设我有一个组件 ListOptionsMenu ,此组件通过其输入接收1个菜单的选项列表。

现在假设在视图中有4个菜单,然后我使用 ListOptionsMenu 模板但在创建另一个 ListFatherOptionsMenu 组件之前控制数据的逻辑。

ListFatherOptionsMenu 中,我在其构造函数中有一个 menuService ,这在其ngOnInit中,调用负责的服务方法来带来选项数据根据类型 this.menuService.getOptions(type); 的菜单 然后父组件将从服务中获取的选项传递给子组件,并且没有问题,4个菜单中的每一个都有相应的选项。

现在假设我想动态更改菜单选项,我点击允许我登录的菜单选项,登录面板打开,4个菜单仍然在同一视图中,只需更改正文,我登录问题是,一旦我成功登录,我想通过对api的新调用来更改2个菜单的选项列表,1将菜单从登录注册更改为注销(我知道很简单),并且另一个用户进入时更新主菜单。

然后在 ListFatherOptionsMenu 中可以使用服务之间的通信将其与某些observable链接,或者将redux与 ngrx / store ngrx / effects ,这里的问题是这个组件不知道向谁发送从observable收集的数据,如果发送它,则会复制到4个子组件中。

然后我决定删除这个父组件并控制来自相同子组件的数据逻辑。

但是这里的问题是一样的,如果我将一个observable连接到一个服务(登录一个)来改变数据(通过服务调用api),或者使用redux(一个商店),这就是构造函数,对于所有 ListOptionsMenu 是相同的,然后在任何更改时,4个组件都会受到影响。

我认为可能在构造函数中添加一个开关并根据菜单类型加载相应的store / observable可以解决这个问题,所以当用户登录时,menuA,storeA被加载,B存储B和其他不改变的是没有加载任何商店,但我认为不是一个非常干净的选择。

我需要帮助来了解如何在这种情况下控制信息流,因为它不仅扩展到许多选项,还扩展到作为其他服务模板所需的任何类型的组件。

任何形式的帮助,提前谢谢。

0 个答案:

没有答案