Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角订阅只触发一次_Angular_Rxjs_Observable_Angular Services_Behaviorsubject - Fatal编程技术网

Angular 角订阅只触发一次

Angular 角订阅只触发一次,angular,rxjs,observable,angular-services,behaviorsubject,Angular,Rxjs,Observable,Angular Services,Behaviorsubject,尝试在click listener上使用行为主题进行订阅,并在进行订阅的组件的第一次加载时仅从服务获取空对象 ngOnInit() { this.shareDataService.dataUpdate$.subscribe(success =>{ this.data = success; }) } 我尝试了observable和async管道,结果是一样的。服务在“根目录”中提供。如果订阅位于ngOnChanges(changes:SimpleChange

尝试在click listener上使用行为主题进行订阅,并在进行订阅的组件的第一次加载时仅从服务获取空对象

ngOnInit() {
    this.shareDataService.dataUpdate$.subscribe(success =>{
      this.data = success;
    })
  }
我尝试了observable和async管道,结果是一样的。服务在“根目录”中提供。如果订阅位于
ngOnChanges(changes:SimpleChanges){}
lifecycle钩子订阅会在每次单击时激发,但始终存在空对象

我试着复制它,一切都很好。对象从
对象发送方
组件发送到服务

this.shareDataService.dataVisibility(this.data);
对象是在
receiver
组件中接收的,这是预期的行为,所以我不知道为什么应用程序中有空对象


可能是什么问题?

这是预期的行为

您正在Ngonit生命周期上从对象发送器组件发送数据`

export class ObjectSenderComponent implements OnInit {

    constructor(private shareDataService: ShareDataService) { }

    data: Object = {};

    ngOnInit() {
        this.shareDataService.dataVisibility(this.data);
    }

    onClick = () => {

        this.data = {
            dataName: "Data",
            dataVisible: true
        }

        this.shareDataService.dataVisibility(this.data);
    }
}
使用异步管道将组件添加/删除到dom中`

 <app-receiver 
     *ngIf="shareDataService.isBtnClicked$ | async"
 ></app-receiver>

我没有完全理解这个问题,你能再详细一点吗?你想做什么?预期的结果是什么?数据来自何处?尝试获取包含从组件1发送到服务的数据的对象,并尝试使用订阅从服务获取组件2中的这些对象。始终在组件2中获取空对象,尽管服务中的对象不是空的。能否显示实现主题的代码?@Talg123请查看[Subject.service]()。有一个行为主体的实现,在服务中(dataInfo)对象记录在控制台中。
 <button (click)="onClick()"> Get Object </button>
data: Object = {};