【发布时间】:2021-10-04 03:25:19
【问题描述】:
我在库中创建了选项卡组件,该组件显示选项卡,我们可以根据应用程序组件中包含的按钮单击更改选项卡内容或标题。 我在库中创建了一个服务来处理这个问题并在 libray 组件中注册订阅回调。 但是,当我单击按钮时,我正在向行为主题发送数据,但订阅回调并未在库组件中触发。
ngOnInit(): void {
this.onTabChangeReceived();
}
onTabChangeReceived = () => {
this.caseSelection.onSelectedTab().subscribe(caseSelected => {
debugger
console.log('caseSelected =======', caseSelected);
});
}
我这样发送数据的应用组件
onLockedButtonClicked(event: string) {
console.log('event is', event);
this.caseSelectionService.sendSelectedTab(event.toLowerCase().replace(' ', ''))
}
import {Injectable} from '@angular/core';
import {BehaviorSubject, Observable,} from 'rxjs';
@Injectable({providedIn: 'root'})
export class LaCasesSelectionService {
private subject = new BehaviorSubject<string>('all cases');
sendSelectedTab(message: string) {
debugger
this.subject.next(message);
}
onSelectedTab(): Observable<string> {
return this.subject.asObservable();
}
}
谁能说明为什么这个回调没有触发
【问题讨论】:
-
当你创建这样的函数
onTabChangeReceived() {instaed ofonTabChangeReceived = () => {时有什么不同吗?