我有一个用Angular版本8开发的Angular应用程序,它有n个组件。应用程序中所有组件的初始化都需要执行一个公共逻辑。我不想把这个通用逻辑放在一个共享服务中,然后从所有组件的构造函数或ngOninit生命周期钩子中调用它。这样做的原因是,我们有不同的开发人员,他们不断向应用程序添加新组件,并且这些新组件也需要执行这些公共逻辑,而我的大量时间被消耗在告诉开发人员有关此逻辑的信息上。
有没有一种方法可以覆盖angular核心库中的angular组件初始化步骤,以放置我的公共逻辑,以便为每个组件的初始化执行该公共逻辑,并节省我的时间,使我不必要求每个开发人员注入我的共享服务并从他们组件的ngOninit调用它。
而这个常见的逻辑并不是一个非常复杂的逻辑。这只是一个简单的Rest API调用,它将组件的信息注册到一个文件中,用于日志记录。
发布于 2021-09-08 08:03:19
因为您基本上希望为每个组件执行这段代码,所以继承是我想到的第一件事。您可以创建一个基本组件(它是一个类),然后要求您的同级继承/扩展这个特定的基本组件。这样你就不需要向整个团队解释逻辑了。如果您正在扩展这个基础组件,它将充当您创建的所有新组件的契约。
编辑:根据评论,我添加了在Angular中使用AOP的链接,这样我们就可以很容易地在现有应用程序中添加不同的日志记录方面。
https://gorillalogic.com/blog/how-to-achieve-aspect-oriented-programming-aop-in-angular-2/
https://jaxenter.com/cross-cutting-concerns-angular-2-typescript-128925.html
https://stackoverflow.com/questions/69069542
复制相似问题