【发布时间】:2018-03-03 12:58:45
【问题描述】:
我有一个 Person 类型的对象,其中包含 firstName、lastName、age 字段。我使用行为主题检测任何变化。我有一个观察组件,它订阅了此 Person 对象上的每个更改。一旦检测到变化,观察组件就会调用一个方法。我想让这个方法改变 Observable Person 对象的属性。
为我服务
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 类型上不存在“属性”firstName
【问题讨论】:
-
一个 observable 是一个流。它没有属性。你想让我做什么?你想把你自己的价值放在流上吗?在这种情况下,您可以尝试
Subject#next。 -
最初我在服务中有一个 Person 类型的变量 person。我想要的是检测这个对象属性的任何变化。还有其他方法可以检测服务中声明的变量的变化吗?