Как мне разрешить пустую страницу без ошибок в Angular-7 - PullRequest
0 голосов
/ 20 сентября 2019

Я разрабатываю клиентское портальное приложение с использованием Angular-7 и Laravel-5.8:

import { Component, OnInit } from '@angular/core';
import { ApiService } from '../../../shared/services/api.service';
import { TokenService } from '../../../shared/services/token.service';
import { Router, Route } from '@angular/router';
import { AuthService } from '../../../shared/services/auth.service';
import { SnotifyService } from 'ng-snotify';
import { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';

declare var $;


@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {

  public loggedIn: boolean;

  public form = {
    email : null,
    password : null,
    remember_me : false
  };

  name = null;
  public error = null;

  constructor(
    private api: ApiService,
    private token: TokenService,
    private router: Router,
    private auth: AuthService,
    private notify: SnotifyService,
    private spinnerService: Ng4LoadingSpinnerService
    ) {}

  ngOnInit() {

    if(this.token.loggedIn) {
      this.router.navigateByUrl('/home');
    }

    document.body.className = 'hold-transition login-page';
    $(() => {
      $('input').iCheck({
        checkboxClass: 'icheckbox_square-blue',
        radioClass: 'iradio_square-blue',
        increaseArea: '20%' /* optional */
      });
    });
  }

  onSubmit(){
    this.notify.info('Wait...', {timeout: 0});
    this.spinnerService.show();
    var headers = {
      'Content-Type' : 'application/json'
    }
    return this.api.post('login', this.form, headers).subscribe(
      data => this.tokenHandler(data),
      error => this.errorHandler(error.error)
    );
  }

  errorHandler(error){
    this.spinnerService.hide();
    this.notify.clear();
    console.log(error);
    if(error.errors && error.errors.email){
      this.error = error.errors.email;
    }
    else if(error.message=='Unauthorized'){
      this.error = null;
      this.notify.error('Invalid Login Details or email not confirmed', {timeout: 0})
    } else {
      this.error = null;
      this.notify.error(error.message, {timeout:0})
    }
  }

  tokenHandler(data){
    this.notify.clear();
    console.log(data);
    this.token.setRoles(data.user.roles);
    this.token.set(data.token_type + " " + data.access_token, data);
      this.auth.changeAuthStatus(true);
      this.loggedIn = true;
      this.notify.info('Login Succesfully', {timeout:2000});
      this.wait(999);
      this.router.navigateByUrl('/home');
      window.location.reload();
  }

  add(){
    this.notify.clear();
    this.name = null;
    var modal = document.getElementById('addModal');
    modal.style.display = 'block';
  }

  addModalSubmit(){
    this.notify.clear();
    this.notify.info('Wait...', {timeout: 0});
    localStorage.setItem('student_id', this.name);
    this.auth.changeAuthStatus(true);
    this.loggedIn = true;
    this.notify.info('Login Succesfully', {timeout: 2000});
    this.wait(999);
    this.router.navigateByUrl('/home');
    window.location.reload();

  }

  closeAddModal(){
    localStorage.removeItem('token');
    localStorage.removeItem('roles');
    localStorage.removeItem('user');
    //localStorage.removeItem('student_id');
    var modal = document.getElementById('addModal');
    modal.style.display = 'none';
  }

  private wait(ms){
    var start = new Date().getTime();
    var end = start;
    while(end < start + ms) {
      end = new Date().getTime();
    }
  }

}

У меня очень странная ошибка, и я не знаю, как ее исправить.

Кнопка «Отправить» предполагает, что вы перенаправили меня на домашнюю страницу, но на ней отображается пустой белый экран.Я проверил консоль и сеть, ошибок нет.В чем может быть причина и как мне ее устранить?

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