如果您希望isLoggedIn
在应用程序的任何地方都可以访问全局变量,那么将其@Injectable service
作为单例服务放置是完全有效的。为了确保它是单例服务,您应该只在 app.modules 中声明它,例如
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { SingletonService } from './Singleton.service';
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
FormsModule
],
providers: [SingletonService],
bootstrap: [AppComponent]
})
export class AppModule { }
如果您还通过以下方式将其添加到组件中:
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
providers: [SingletonService]
})
您初始化一个新的 Service 实例,并且您的预期全局isLoggedIn
将在此组件中拥有它自己的实例。
希望这能让您对如何使用@Injectable()
angular 存储全局变量有所了解。
更多关于依赖注入的信息在这里。