我创建了此服务:
@Injectable({ providedIn: 'root' })
export class HeaderService {
private _loggedIn = new BehaviorSubject<boolean>(false);
public isLoggedIn() {
return this._loggedIn.asObservable();
}
public setLoggedIn(loggedIn: boolean) {
this._loggedIn.next(loggedIn);
}
}
我的Angular应用程序中有2个模块。主要一个和另一个。当我从属于setLoggedIn
的组件中调用ÀppModule
时,它没有使用与我通过HeaderComponent
订阅Observable的isLoggedIn()
中的服务实例相同的服务实例,但是当我调用update方法时在不属于ÀppModule的组件中,该组件称为订阅。正如我在Angular网站上用语法声明服务时所读的那样,它应该是Singleton,所以我现在很困惑。有人遇到过类似的问题吗?并成功修复。
您需要从服务类中删除注入,您也要通过@Injectable装饰器对其进行注入。
请从您的服务类别的此行中将其删除。 @Injectable({ providedIn: 'root' })
。
应该看起来像下面的语句
@Injectable()