Angular2:可观察到的呼叫太多
因此,目前我创建了一个服务,以便将数据从一个组件传递到另一个组件。假设我有一个选择组件和一个组件工厂。为了将选定的值从选定组件传递到工厂,我设计了此服务 以下是该服务的外观:Angular2:可观察到的呼叫太多,angular,service,observable,subscriber,Angular,Service,Observable,Subscriber,因此,目前我创建了一个服务,以便将数据从一个组件传递到另一个组件。假设我有一个选择组件和一个组件工厂。为了将选定的值从选定组件传递到工厂,我设计了此服务 以下是该服务的外观: import { Injectable } from '@angular/core'; import {Subject} from "rxjs/Subject"; @Injectable() export class ObservableService { private dataSource = new Sub
import { Injectable } from '@angular/core';
import {Subject} from "rxjs/Subject";
@Injectable()
export class ObservableService {
private dataSource = new Subject();
data = [];
data$ = this.dataSource.asObservable();
updateFilter(value) {
this.data.push(value);
console.log('Changes transfer');
this.dataSource.next(this.data)
}
}
所以,正如我所说的,我必须将数据从属于select组件的htmlselect
input路径发送到工厂,下面是select组件html
<select (change)="onChange($event)">
<option value="">Options</option>
<option *ngFor="let option of options" [value]="option.value">{{ option.name }}</option>
</select>
}
下面是我如何在factory组件中捕获数据
ngOnInit() {
this._observable.data$.subscribe(
data => console.log('Changes detected');
)
}
您可能会注意到我在数据传输的每个阶段都使用了控制台命令。事实上,我得到了这个:
Changes sent
Changes transfer
(13) Changes detected
因此,事实上,可观察订户检测到13个变化!请帮助我了解这种奇怪的行为从何而来?请提供。“另一个组件”是什么?请提供。“另一个组件”是什么?
Changes sent
Changes transfer
(13) Changes detected