вызов метода в ngOnInit - PullRequest
       14

вызов метода в ngOnInit

0 голосов
/ 02 марта 2019

Я пытаюсь вызвать метод, если при загрузке страницы обнаружен файл cookie.В случае обнаружения должна загрузиться темная тема моих приложений.

Я использую Angular 7 и 'ngx-cookie-service'.

Я могу переключать темы нормально, но не могу понять, какавтоматически переключать тему при обнаружении файла cookie.

Вот код моей службы переключения тем:

import { Injectable, OnInit } from '@angular/core';
import { Subject } from 'rxjs';

// Import Services
import { CookieService } from 'ngx-cookie-service';

@Injectable()
export class ThemeSwitchService implements OnInit {

  constructor( private cookieService: CookieService ) { }

  private _themeDark: Subject<boolean> = new Subject<boolean>();

  isThemeDark = this._themeDark.asObservable();

  ngOnInit(): void {
    const cookieValue: string = this.cookieService.get('DarkTheme');
    if (cookieValue === 'True') {
      setDarkTheme();
      console.log('Dark theme active.')
    }
  }

  setDarkTheme(isThemeDark: boolean) {
    this._themeDark.next(isThemeDark);
    if (isThemeDark) {
      this.cookieService.set('DarkTheme', 'True');
      console.log('Dark theme activated.')
    } else {
      this.cookieService.delete('DarkTheme');
      console.log('Dark theme deactivated.');
    }
  }
}

Я надеюсь, что смогу вызвать метод переключения тем внутри ngOnInit, ноЯ не могу заставить его работать.Эта ошибка отображается в терминале: ERROR in src/app/core/services/theme-switch.service.ts(20,7): error TS2663: Cannot find name 'setDarkTheme'. Did you mean the instance member 'this.setDarkTheme'?

1 Ответ

0 голосов
/ 02 марта 2019
ngOnInit(): void {
    let cookieValue: string = this.cookieService.get('DarkTheme');
    if (cookieValue === 'True') {
      this.setDarkTheme(true);
      console.log('Dark theme active.')
    }
  }

Пожалуйста, добавьте этот код и проверьте снова.

...