クリック可能なチャートを含むネストされたコンポーネントがあり、選択可能なセクションが3つあり、その中にあるmd-tab-groupのselectedIndexが設定されます。最初のタブに移動し、2番目のタブは2番目のタブに、3番目のタブは3番目のタブに移動します。角2 - BehaviorSubjectでループを作成するサービス
問題は、私が使用しているサービスが何らかのループを作成しているようです。私がサービスを取っているステップをコンソール化すると、毎回大きくなっています。
Before:
0
1
After
1
Before:
1
2
2
2
After:
2
Before:
2
3
3
3
3
3
3
After
3
:
関連サービスコード:私はさらに2回、最初のセクションをクリックしてメインナビゲーションとバックチャートに移動して、プロセスを繰り返したときに私が見る何
changeActiveTab(number) {
console.log("Before: ");
this._activeTab.subscribe(val => console.log(val));
this._activeTab.next(number);
console.log("After");
this._activeTab.subscribe(val => console.log(val));
}
私はBehaviorSubject'sにかなり新しいです、どこに間違っているのだろうか?
(つまり、いずれかの場合に役立ちます私が使用私の例では、hereからだった)
親コンポーネントのための関連するコード:子コンポーネントの
selectedTab: number;
subscription:Subscription;
constructor(private _activeTabService: ActiveTabService) { }
ngOnInit() {
this.subscription = this._activeTabService.activeTab$.subscribe(
selectedTab => this.selectedTab = selectedTab);
}
ngOnDestroy(){
this.subscription.unsubscribe();
}
関連チャートTS:
onClick(event){
if(event.series == 'Table'){
this.changeActiveTab(1);
}
if(event.series == 'Chairs'){
this.changeActiveTab(2);
}
if(event.series == 'Desks'){
this.changeActiveTab(3);
}
}
が確認いただき、ありがとうございます!これはどうなるか説明できますか?私がタブを設定して戻っているのであれば、今のものと多かれ少なかれ同じですか? – gv0000
私は単純な例を追加しました – Avi
私の例ではBehaviorSubjectを使用していて問題はありますか? だから私のonClickの機能のようなものになります。{ this.tabService.registerTabを 'のonClick(イベント)()サブスクライブ( (RES)=> { をするif(event.series == '表'){ this.changeActiveTab(1);} IF(event.series == '議長){ this.changeActiveTab(2);} IF(event.series == 'デスク'){ this.changeActiveTab( 3); } } }「 – gv0000