答案 0 :(得分:1)
我建议您查看Angular基础知识中的Component Interaction部分。我将为您提供一个问题示例:
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class NavbarService {
// Observable string source
private profileImageUpdatedSource = new Subject<string>();
// Observable string stream
profileImageUpdated$ = this.profileImageUpdatedSource.asObservable();
// Service message command
updateImage(url: string) {
this.profileImageUpdatedSource.next(url);
}
}
NavbarService
注入您的com-A并在之后调用updateImage
方法
图片正在更新:uploadImage() {
if(sucess) {
this.profileImage = response().image;
this.navbarService.updateImage(this.profileImage);
}
}
NavbarService
注入您的com-B并订阅profileImageUpdated$
:export class ComponentB implements OnInit, OnDestroy {
private navbarImage: string;
private profileImageUpdated$: Subscription;
constructor(private readonly navbarService: NavbarService) { }
ngOnInit() : void {
this.profileImageUpdated$ = this.navbarService.profileImageUpdated$
.subscribe(url => this.navbarImage = url);
}
ngOnDestroy(): void {
// do not forget to unsubscribe
this.profileImageUpdated$.unsubscribe();
}
}
有关详细信息,请参阅this section。
答案 1 :(得分:0)
要在组件之间共享数据,您可以使用服务。我在这里有一个例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
基本服务代码如下所示:
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
serviceData: string;
}
where&#34; serviceData&#34;在我的示例中,您将要分享任何属性,例如您的图像。有关如何使用此服务的详细信息,请参阅链接。