Ionic 4 использует боковое меню для прокрутки от компонента к компоненту - PullRequest
0 голосов
/ 27 сентября 2019

Привет. Я пытаюсь использовать боковое меню для прокрутки от одного компонента к другому.У меня есть главное приложение на моей домашней странице, и я создал службу, чтобы попытаться передать некоторые данные, но я просто не могу инициировать прокрутку из моего сервиса.У меня есть боковое меню внутри моего app.component.

App.Component.ts

ScrollToPoint(x: number, y: number, duration: number) {
    this.content.scrollToPoint(x, y, duration);
  }

  scrollToSection(num: number) {
    switch (num) {
      case 1:
        console.log('switch case 1 was clicked');
        console.log(this.aboutSec);
        this.ScrollToPoint(0, this.aboutSec - 100, 1500);
        break;

      case 2:
        this.ScrollToPoint(0, this.serviceSec - 100, 1500);
        break;

      case 3:
        this.ScrollToPoint(0, this.contactSec - 100, 1500);
        break;
    }
  }

  ngDoCheck() {
    this.homeService.aboutSection$.subscribe((data) => {
      this.aboutSec = data;
      console.log('this is the about section - ' + this.aboutSec);
    });

    if (window.screen.width < 1200) { // 768px portrait
      this.mobile = true;
    } else {
      this.mobile = false;
    }
  }

home.page.ts

constructor(
    private modalCtrl: ModalController,
    private homeService: HomeService
  ) {}

  ngDoCheck() {
    this.homeService.aboutSection(this.aboutSec);
}

ScrollToBottom() {
    this.content.scrollToBottom(1500);
  }

  ScrollToTop() {
    this.content.scrollToTop(1500);
  }

  ScrollToPoint(x: number, y: number, duration: number) {
    this.content.scrollToPoint(x, y, duration);
  }

  scrollToSection(num: number) {
    switch (num) {
      case 1:
        this.ScrollToPoint(0, this.aboutSec - 100, 1500);
        break;

      case 2:
        this.ScrollToPoint(0, this.serviceSec - 100, 1500);
        break;

      case 3:
        this.ScrollToPoint(0, this.contactSec - 100, 1500);
        break;
    }
  }

home.service.ts

@Injectable({ providedIn: 'root' })
export class HomeService {
    aboutSection$: Observable<any>;
    serviceSection$: Observable<any>;
    contactSection$: Observable<any>;

    private myAboutSubject = new Subject<any>();
    private myServiceSubject = new Subject<any>();
    private myContactSubject = new Subject<any>();

    constructor() {
        this.aboutSection$ = this.myAboutSubject.asObservable();
        this.serviceSection$ = this.myServiceSubject.asObservable();
        this.contactSection$ = this.myContactSubject.asObservable();
    }

    aboutSection(data: any) {
        console.log(data);
        this.myAboutSubject.next(data);
    }
}

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...