Angular:如何与 app-component (app-root) 共享来自 custom-component 的数据
Angular: how to share data from custom-component with app-component (app-root)
App-Component-Html:(在 Index.Html 中作为 <app-root></app-root>
)
<h2> {{currentOrNextWeek}} week from {{dateMonday}} to {{dateFriday}} </h2>
<div class="container"> <router-outlet></router-outlet> </div>
Custom-Component-TS:在路由中定义 -> router.module.ts 除了许多其他 custom-components 它还有一个 table 显示由发送 get-requests 到 API。像这样:
this.configService.getData.subscribe(data => organizeData(data))
数据本身有“Week = Current”、“DateOfMonday=01.01.2021”等信息(都是字符串)
如何将数据从 custom.component 传递到 app.component?我尝试了 EventEmitter,但我使用 <router-outlet>
。据我正确理解,序列以 app-component 开头,但第一个 GetData 调用在 custom-component 中,但标题在 app-component-html
中
您的问题似乎是如何 属性 在两个动态且不需要是父子的组件之间进行交换。
在那种情况下,通过服务进行通信似乎是最好的方式。
您可以使用 属性 tittle = new subject()
创建一个名为 AppCommunication
的服务,该服务可以具有在应用程序组件上订阅的可观察对象,并且可以注入到您的自定义组件中,这样您就可以触发来自 'next'.
的值
这可以在任何您想设置的地方使用。
您不能使用 RXJS 发送此数据,behaviorSubject?
在某些服务上:
varbSubject$ = new BehaviorSubject(<string>);
在您的应用组件上:
bSubject$ = yourservice.varbSubject$
bSubject$.next("b");
关于自定义未知元素 =>
bSubject$ = yourservice.varbSubject$
bSubject$.subscribe(value => {
console.log("Subscription got", value);
});
看看下面的@ThiagoNascimento post,它解决了我的问题!
Link:
App-Component-Html:(在 Index.Html 中作为 <app-root></app-root>
)
<h2> {{currentOrNextWeek}} week from {{dateMonday}} to {{dateFriday}} </h2>
<div class="container"> <router-outlet></router-outlet> </div>
Custom-Component-TS:在路由中定义 -> router.module.ts 除了许多其他 custom-components 它还有一个 table 显示由发送 get-requests 到 API。像这样:
this.configService.getData.subscribe(data => organizeData(data))
数据本身有“Week = Current”、“DateOfMonday=01.01.2021”等信息(都是字符串)
如何将数据从 custom.component 传递到 app.component?我尝试了 EventEmitter,但我使用 <router-outlet>
。据我正确理解,序列以 app-component 开头,但第一个 GetData 调用在 custom-component 中,但标题在 app-component-html
您的问题似乎是如何 属性 在两个动态且不需要是父子的组件之间进行交换。 在那种情况下,通过服务进行通信似乎是最好的方式。
您可以使用 属性 tittle = new subject()
创建一个名为 AppCommunication
的服务,该服务可以具有在应用程序组件上订阅的可观察对象,并且可以注入到您的自定义组件中,这样您就可以触发来自 'next'.
这可以在任何您想设置的地方使用。
您不能使用 RXJS 发送此数据,behaviorSubject?
在某些服务上:
varbSubject$ = new BehaviorSubject(<string>);
在您的应用组件上:
bSubject$ = yourservice.varbSubject$
bSubject$.next("b");
关于自定义未知元素 =>
bSubject$ = yourservice.varbSubject$
bSubject$.subscribe(value => {
console.log("Subscription got", value);
});
看看下面的@ThiagoNascimento post,它解决了我的问题!
Link: