ฉันมี ListComponent เมื่อมีการคลิกรายการใน ListComponent รายละเอียดของรายการนั้นควรจะแสดงใน DetailComponent ทั้งสองอย่างอยู่บนหน้าจอในเวลาเดียวกันดังนั้นจึงไม่มีการกำหนดเส้นทางที่เกี่ยวข้อง
ฉันจะบอก DetailComponent ได้อย่างไรว่ารายการใดใน ListComponent ถูกคลิก
ฉันได้พิจารณาการปล่อยเหตุการณ์ไปยังผู้ปกครอง (AppComponent) และให้ผู้ปกครองตั้งค่า selectedItem.id บน DetailComponent ด้วย @Input หรือฉันสามารถใช้บริการร่วมกับการสมัครสมาชิกที่สังเกตได้
แก้ไข:การตั้งค่ารายการที่เลือกผ่านเหตุการณ์ + @Input ไม่ได้ทริกเกอร์ DetailComponent แต่ในกรณีที่ฉันต้องรันโค้ดเพิ่มเติม ฉันไม่แน่ใจว่านี่เป็นวิธีแก้ปัญหาที่ยอมรับได้
แต่ทั้งสองวิธีนี้ดูซับซ้อนกว่าวิธี Angular 1 ในการทำสิ่งต่างๆซึ่งไม่ว่าจะผ่าน $ rootScope $ broadcast หรือ $ scope $ parent. $ broadcast
เนื่องจากทุกอย่างใน Angular 2 เป็นส่วนประกอบฉันรู้สึกประหลาดใจที่ไม่มีข้อมูลเพิ่มเติมเกี่ยวกับการสื่อสารของคอมโพเนนต์
มีวิธีอื่น / ตรงไปตรงมากว่านี้ในการทำให้สำเร็จหรือไม่?