3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以通過多種方式完成此操作,因?yàn)檫@些組件彼此不相關(guān),您可以引入狀態(tài)服務(wù)并使用可觀察對象。請參閱下面可能的解決方案
創(chuàng)建一個(gè)新的狀態(tài)服務(wù) ListStateService
export class ListStateService {
private listData = new BehaviorSubject<NewList >({} as NewList);
listData$ = this.listData .asObservable();
}
將 ListStateService 注入 NewListMenuComponent
在 onSubmit 中,更新后,
const lists = this.listService.updateLists(newListObj);
this.listData .next(lists );
將 ListStateService 注入 SubHeaderComponent 在 ngOnInit() 中,訂閱 ListStateService.listData$,在這里您將獲得更改的值

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
在您的服務(wù)中,使用事件發(fā)射器(非常有用):
import { EventEmitter } from "@angular/core";
@Output() myEvent: EventEmitter<any> = new EventEmitter();
然后通過您的服務(wù)向您的子標(biāo)題組件發(fā)送新數(shù)據(jù),如下所示:
emitEvent (newData: Array<string>) {
this.myEvent.emit({
data: newData,
});
}
訂閱子標(biāo)題組件中的新數(shù)據(jù)ngOnInit并使用它:
this.myService.myEvent.subscribe((newData: Array<string>) => {
console.log(JSON.stringify(newData.data));
});
注意:如果在組件中不斷地重新訂閱,訂閱會導(dǎo)致內(nèi)存泄漏,所以您可以保存訂閱并unsubscribe()在ngOnDestroy回調(diào)中調(diào)用它。

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
有點(diǎn)不清楚您要做什么,但是如果您嘗試將數(shù)據(jù)從父組件傳遞到子組件,則可以使用 Input 字段或 ViewChild
使用您的父母可能看起來像這樣的輸入字段:
<app-sub-header [names]="names"></app-sub-header>
然后在孩子中使用“輸入”字段。更新父級中的名稱應(yīng)實(shí)時(shí)更新子級中相同的命名變量。
添加回答
舉報(bào)