Я использую тему, чтобы добавить функциональность редактирования в основное приложение телефонной книги.
Изменения, которые я делаю в переменных класса компонента внутри обратного вызова подписки, не отражаются ни в нем, ни в шаблоне.
Я попробовал решения, перечисленные в ответах на следующий вопрос:
Angular 2 View не будет обновляться после изменения переменной в подписке
в 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