Angular 有了RXJS,我可以让一个可观测的或主体连接到一个不断变化的可观测源吗?

Angular 有了RXJS,我可以让一个可观测的或主体连接到一个不断变化的可观测源吗?,angular,rxjs,observable,Angular,Rxjs,Observable,具体应用: 在一个角度(6)组件中,我有一个FormGroup,其中有一个类型为observable的valueChanges对象,该对象需要指向一个EventEmitter。如果此FormGroup从未更改,则其valueChanges可能是EventEmitter,但FormGroup会更改(重新分配)以响应更改的组合框 FormGroup表示一组复选框 EventEmitter是EventEmitter 目前正在发生的是: this._myFormGroup.valueChanges.su

具体应用:

在一个角度(6)组件中,我有一个
FormGroup
,其中有一个类型为observable的
valueChanges对象,该对象需要指向一个
EventEmitter
。如果此
FormGroup
从未更改,则其
valueChanges
可能是
EventEmitter
,但
FormGroup
会更改(重新分配)以响应更改的组合框

FormGroup
表示一组复选框

EventEmitter
EventEmitter

目前正在发生的是:

this._myFormGroup.valueChanges.subscribe(value => this.myEventEmitter.emit(value));
因为组被重新分配,所以我不想丢失对输出事件发射器的任何订阅

编辑:明确我的期望:

我想要一种方法,将
@Output()myEventMitter
作为公共接口的一部分,它始终是同一个实例(因此维护订阅)


使用更改的表单组(注意:它是为组合框的每次更改动态生成的)但是可以将其可观察内容输入到MyEventMitter中,而不必在subscribe中调用emit,有些人认为这是一种不好的做法。

如果模板上的事件可以连接到事件发射器,为什么还要麻烦表单组

<input *ngFor="let value in values; index as i" type="checkbox"
  [checked]="values[i]" (click)="values[i] = !values[i];emit(values)">

您的问题是什么?您可以在不同的表单中使用表单组,而无需再次订阅。@dmcgrandle它在标题中,但为了以防万一,在结尾添加了一些细节。@reactular将重新生成表单(在模板上),并将表单组重新分配给所需的新选项。没有其他表单。那么,为什么不发出valueChanges呢?每次创建新文件时,使用
this.myEventMitter.emit(this.\u myFormGroup.valueChanges)
将其发出。这将使您的eventEmitter成为一个可观察的对象(高阶),每个内部可观察对象可以有多个值、完整值等。您对事件发射器的订阅将需要重构以应对高阶可观察对象。顺便说一句:订阅EventEmitter也是一种不好的做法,请参阅了解原因…表单组中包含n个复选框。
emit => val => { myEventEmitter.emit(val); }