Angular 2/4管理表单CRUD与父/子组件

时间:2017-09-12 23:52:20

标签: javascript angular user-interface

  • 我有一个父组件和一个子组件,其中父组件是使用* ngFor的重复子组列表。

  • 每个孩子通过角度的@Input特征接受一个对象,子模板是一个使用角度2路绑定绑定的形式,让你可以编辑对象属性。

  • 父组件不一定是子组件的通用容器/列表,不会重复用于其他列表。

  • 父级使用注入的服务来检索正在使用的数据列表。

我的问题是,谁应该在保存表单时调用更新函数?如果孩子注入了服务并且它调用服务上的更新功能?应该传递给父母进行更新吗?孩子是否应该开始阅读?

我理解这可能会引发自以为是的答案,所以我正在寻找一个与Angular团队的最佳实践意图相符并且符合此标准的答案:

  • 在可读性,性能和设计之间均匀分布。
  • 全面且与常用的软件设计模式相关。

如果需要任何额外信息,请告诉我,谢谢!!

2 个答案:

答案 0 :(得分:3)

我说,如果父组件使用某种服务(最有可能)检索子项,那么可能同一服务也处理保存操作,因此它应该是负责调用保存操作的父组件。在这种情况下,孩子应该仅生成事件以通知父母用户保存该特定项目的意图。这样他们的职责就更好地分开了,因为只有一个(父)组件负责服务上的数据操作(一个问题),而孩子只负责显示和编辑项目(另一个问题)。

答案 1 :(得分:0)

可能只取决于更新按钮的放置位置。如果它在子组件中,则从子级调用该服务,否则从父级调用它。