我正在构建一个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?
更新:
我喜欢EventEmitter的想法,但遇到了问题。
我RetailerService:
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)
});
}
})
});
}
}
在我RetailerDetailComponent:
出口类RetailerDetailComponent实现LoggedInCallback { 零售商:零售商;
public showError: boolean;
constructor(
private retailerService: RetailerService) {
}
ngOnInit(): void {
this.retailerService
.OnRetailerUpdated
.subscribe(value => {
this.showError = true;
console.log('Event thingy worked')
});
}
但是控制台消息显示不出来
请参阅更新,布尔失踪在偶数发射器:'新EventEmitter < boolean >();' – Faisal