Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何更改Observable对象的属性. Angular 2 / BehaviorSubject大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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'});
    }

大佬总结

以上是大佬教程为你收集整理的如何更改Observable对象的属性. Angular 2 / BehaviorSubject全部内容,希望文章能够帮你解决如何更改Observable对象的属性. Angular 2 / BehaviorSubject所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。