我正在构建一个 Angular 4 应用程序,我有 2 个单独的页面,一个详细信息页面和一个编辑页面,每个页面都有自己的组件。
当用户在“编辑”页面上编辑模型时,我将它们重定向回“详细信息”页面,如下所示:
// This is within my RetailerEditComponent
save(): void {
this.retailerService.updateRetailer(this.retailer)
.then(() => this.router.navigate(['/admin/retailer']));
}
在管理/零售商页面中,我有一个 RetailerDetailComponent,如下所示:
export class RetailerDetailComponent {
retailer: Retailer;
public hasBeenUpdated: boolean = false;
constructor(
private retailerService: RetailerService,
) {
console.log("in RetailerDetailComponent");
}
}
如何从我的其他页面将 bool hasBeenUpdated 设置为 true?
Update:
我喜欢 EventEmitter 的想法,但遇到了问题。
我的零售商服务:
export class RetailerService {
public OnRetailerUpdated = new EventEmitter();;
updateRetailer(retailer: Retailer): Promise<Retailer> {
this.OnRetailerUpdated.next(true);
return new Promise((resolve, reject) => {
apigClient.retailerVPut({}, retailer, {})
.then(function (result) {
resolve(result.data[0])
}).catch(function (result) {
reject(result)
});
}
})
});
}
}
在我的 RetailDetailComponent 中:
导出类 RetailerDetailComponent 实现 LoggedInCallback {
零售商:零售商;
public showError: boolean;
constructor(
private retailerService: RetailerService) {
}
ngOnInit(): void {
this.retailerService
.OnRetailerUpdated
.subscribe(value => {
this.showError = true;
console.log('Event thingy worked')
});
}
但控制台消息不显示