【发布时间】:2018-05-29 17:31:47
【问题描述】:
我有 3 种类型的组件来处理表单。它们是:
EntityFormEditComponent //To EditEntityFormViewComponent // To VisualizeEntityFormCreateComponent // To Create
它们有一个共同的父对象,即EntityFormComponent,它们之间共享基本逻辑。
当我创建一个新实体时,该实体从基本表单组件扩展而来,如下所示:
UserFormEditComponent extends from EntityFormEditComponent-
UserFormViewComponent extends from EntityFormViewComponent UserFormCreateComponent extends from EntityFormCreateComponent
这种组织我的项目的方式会产生一个问题:
如何在这 3 个组件之间共享常用方法?
我认为该服务是一种解决方案,但不推荐使用,因为它们不用于处理组件逻辑。
【问题讨论】:
-
请说得更准确一些,告诉我们您所说的“常用方法”到底是什么意思。
-
如果他们都共享一个评论父
EntityFormComponent,你能把你的共同逻辑放在那里并使用继承吗? -
@DiabolicWords 常用函数如 save(),可以在 UserFormEditComponent 和 UserFormCreateComponent 之间共享
-
通常情况下,
save函数属于服务,服务会从组件中调用 -
我同意 user184994。使用 Angular 和 Typescript,你应该避免复杂的继承模式。我认为您来自 Java 背景,这很正常。好吧,在 Angular 的世界里,当我们谈论组件、模块和服务时,你必须重新考虑你对通用解决方案的方法。 -- 简单来说:如果你有一个要在多个组件之间共享的方法,请使用服务而不是应用继承模式。
标签: angular