首页 > 解决方案 > Angular 8:如何避免父子逻辑重复

问题描述

我在父控制器中有常见的请求。我还阅读了请求的路由器参数。对于孩子,我有不同的请求,但我需要从路由器读取相同的参数 - 结果我得到重复的代码。

对于父母和孩子:

this.param1 = this.route.snapshot.paramMap.get('param1');
this.param2 = this.route.snapshot.paramMap.get('param2');

和 param1 和 param2 相同的初始化。

通过使用儿童

<router-outlet></router-outlet>

通过服务连接父母和孩子。

有更好的方法来避免这种情况吗?将参数的阅读移至服务并订阅它?但我仍然有变量的初始化。或者也许创建公共类并将其添加到父子类的实现中?

标签: angulartypescript

解决方案


你有两个选择,或者像你说的那样创建一个服务并在那里处理参数逻辑,然后只导入服务并使用带有参数值的变量。或者您可以使用事件发射器将值从父级传递给子级,有关事件发射器的更多信息,请查看文档


推荐阅读