似乎有一些方法可以剥掉这只猫,但我想知道最好的(练习)和原因。
如果我想在child-cmp中收集一些数据并将其传递给parent-cmp,我可以:
我相信还有更多。对于非基于表单的组件,我觉得使用Event发射器是最Angulary要做的事情。但我无法用良好的技术基础来解释原因。想法?
答案 0 :(得分:2)
@Output()
是连接孩子与父母的第一件事。
它在组件之间创建最少量的耦合。如果要在另一个父组件中使用子项,这是最简单的方法。这就是Angular组件的所有内容 - 可重用性。
共享服务是另一种选择,特别是在没有直接父子关系时。
*ngModel
(在子组件中实现ControlValueAccessor
是个好主意。
<强>避免强>
使用@ViewChild()
获取子项的引用会使父项依赖于实现特定接口的子组件。
使用函数包装对象(或以其他方式传递方法或对象引用)
传递方法引入强耦合。使用相当的共享服务。共享服务也是一个带有方法的类实例,但它是Angular中每个开发人员习惯的标准方法,并且它更加明确。要推送参与组件的更新,请使用