Angular4でも2でも動くと思うけど4って書いたほうがかっこいいかなと思って。
Angular4でComponentを書いてるとしばしば次のような問題にブチ当たります。
Componentが無限にデカくなる
最初から適切に画面の分割ができていればいいんですが、実際のプロダクトだと設計書の段階ですでに闇鍋だったりして、頑張ってServiceにロジックを詰め込んでも、一つのcomponent.tsがUI操作だけで2000行とかになったりして無事に死にます。
これに対する応急措置として、親子関係を作ってComponentを分割するというのがありますが、FormGroupを使って入力値の管理をしている場合は一筋縄では行きません。(僕は行きませんでした)
特に、親元のFormGroupの中にFormArrayが入っていてるときに、その部分を分割しようとすると、子Componentから直接親のFormGroupが見えないため、Cannot read property 'getFormArray' of null
ようなエラーが出て上手く動きません。
公式ドキュメントもイマイチ参考にならなかったので色々試行錯誤したところ、ようやくうまくいく方法が見つかったので、覚え書きしておきます。