Глобальная переменная, которая хранит состояние приложения
Здравствуйте. Необходимо завести переменную, которая будет хранить изменяющееся состояние приложения. Везде советуют создавать сервис. Так и поступил.
auth.service @Injectable() export class AuthService { private isAuth = false; private authInfo: UserAuth = undefined; private storage: string; private siteUrl: string; constructor(){ } login(authData: {login: string, password: string}): Observable<any{ ......initToken.... } isLogin(): boolean{ return this.isAuth; } getToken(): string{ return this.authInfo.token; } } Подключаем сервис в app.module @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, HttpClientModule, AdminModule, AppRoutingModule ], providers: [ GlobalVars, AuthService, ], bootstrap: [AppComponent] }) Вызываем инжектим сервис и вызываем его в компоненте login.component: @Component({ selector: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.scss'] }) export class LoginComponent implements OnInit { constructor( private authService: AuthService, private router: Router ) { } onSubmit(){ const authData = this.formLogin.value; this.authService.login(authData) .subscribe( ....... ); } Теперь захожу в компонент portal.component и ожидаю при вызове logout увидеть там authServise с теми данными, которые подгрузились в прошлом компоненте. @Component({ selector: 'app-portal', templateUrl: './portal.component.html', styleUrls: ['./portal.component.scss'] }) export class PortalComponent implements OnInit { constructor( private authServise: AuthService ) {} logout() { this.authServise.logout() .map((data) => { }); } } Но сервис пуст. Данных нет. Ставил в конструктор сервиса лог и он выводится только один раз, т.е. я его не пересоздал где-нибудь. Что я делаю не так? Как сохранить состояние приложения, передавая данные между компонентами? |
sniffysko,
Какие данные подгружаются в AuthService и откуда они берутся? Из приведенного кода - неясно. И что за мифический метод logout, который не описан в классе сервиса? Вообщем без запускаемого примера не разобраться, но задача очень проста. |
Вчера написал простой пример из 3-х компонент, передающих данные друг-другу через сервис. Все работает. Причина моего неработающего примера -- кривые руки. Буду разбираться.
|
Часовой пояс GMT +3, время: 13:06. |