我正在使用主题向基本电话簿应用程序添加编辑功能。我在订阅回调内部对组件类变量所做的更改不会反映在它或模板中。
我已经尝试了以下问题的答案中列出的解决方案: Angular 2 View will not update after variable change in subscribe
在 service.ts 中:
startedEditing= new Subject<number>();
在 details.component.ts(数据在 fu 上传递的地方):
onEdit(){
this.contactsService.startedEditing.next(this.id);
}
在 edit-component.ts(在 ngOnInit 中):
this.subscription=this.contactsService.startedEditing.subscribe(
(index:number)=>{
this.editMode=true;
this.editedItemIndex=index;
this.editItem=this.contactsService.getContact(this.editedItemIndex);
this.editForm.setValue({
address:this.editItem.address,
name: this.editItem.name,
phone:this.editItem.phone,
profession:this.editItem.profession
});
console.log("in subscribe: "+this.editedItemIndex);
}
);
console.log("out of it :" + this.editedItemIndex);
}
控制台上的输出:
in subscribe: 0
out of it : undefined
预期结果:
in subscribe: 0
out of it :0