如何更改Observable对象的属性. Angular 2 / BehaviorSubject
发布时间:2020-12-17 18:10:47 所属栏目:安全 来源:网络整理
导读:我有一个Person类型的对象,其中包含firstName,lastName,age字段.我使用行为主题检测到任何变化.我有一个观察组件,订阅了此Person对象的每个更改.一旦更改检测到观察组件将调用方法.我希望此方法更改Observable Person Object的属性. 在我的服务中 export cla
我有一个Person类型的对象,其中包含firstName,lastName,age字段.我使用行为主题检测到任何变化.我有一个观察组件,订阅了此Person对象的每个更改.一旦更改检测到观察组件将调用方法.我希望此方法更改Observable Person Object的属性.
在我的服务中 export class PersonService { personToCopySource = new BehaviorSubject<Person>(null); personToCopy = this.personToCopySource.asObservable(); 在我的组件中 export class ObservingComponent { constructor(public person: Person) {} ngOnInit(){ this.personService.person.subscribe( data=> { this.updateMethod() } ) } updateMethod(){ this.personService.firstName = 'updated First Name'; } 当我更改Observing对象的属性时,我收到此错误. Observable类型中不存在“Property”firstName 解决方法
可观察的是流.它没有属性.你想让我做什么?你想在firstName上更新你自己的值吗?在这种情况下,您可以尝试下一个主题#.
export class PersonService { personToCopySource = new BehaviorSubject<Person>(null); personToCopy = this.personToCopySource.asObservable(); // Provide a method to update a person,// by putting a new or updated person on the stream. update(person: Person) { this.personToCopySource.next(person); } 在我的组件中 export class ObservingComponent { constructor(public person: Person) {} ngOnInit(){ this.personService.personToCopy.subscribe( data=> { this.updateMethod(data) }) } updateMethod(data){ this.personService.update({...data,firstName: 'updated First Name'}); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |