Если вы хотите передавать данные между компонентами, у вас есть несколько вариантов. Я не собираюсь предполагать что-либо о вашем сценарии и о том, сработают ли они, потому что на самом деле много раз, когда мы новички, мы понимаем, что нам нужно немного изменить архитектуру наших компонентов, чтобы достичь того, чего мы хотим, поэтому Вместо этого я поделюсь доступными вам методами.
Стандартное связывание данных
Если вы пытаетесь передать данные из родительского компонента в дочерний компонент, вы можете просто привяжите данные при добавлении компонента к родительскому компоненту.
parent.component. html
<child-component [myData]="myDataAsIsInParentComponent"></child-component>
child.component.ts
@Input() myData: <YourType>;
Передача данных вверх
Если вы пытаетесь передать данные от дочернего компонента к родительскому компоненту, вы можете передать свои значения вверх по дереву компонента (он же всплывает вверх по дереву компонента)
parent.componenent. html
<child-component (myEmitter)="functionToCallInParent($event)"></child-component>
parent.component.ts
functionToCallInParent($event) {
const myPassedData = $event;
}
child.component.ts
@Output myEmitter: EventEmitter<myType> = new EventEmitter<myType>();
Сейчас, те, которые выпекаются в решениях, которые выходят из коробки с Angular.
Управление состоянием, т. Е. Redux, et c.
Я настоятельно рекомендую вам изучить решения для управления состоянием, такие как Redux через NGRX, если вы хотите иметь некоторые действительно потрясающие возможности хранения и передачи данных.
NGRX потрясающе. Поначалу это немного пугает, но преимущества безумны! Представьте, что вы находитесь в модуле x и нуждаетесь в данных из модуля y, и ни один из них не связан компонентом? В этом сценарии вы не сможете передавать данные вверх и / или вниз по дереву компонентов, но вы можете это сделать с помощью redux.
Надеюсь, это поможет.