#angular #typescript #routes #navigation #angular8
Вопрос:
Проблема в том, что, как только обещание будет выполнено, оно должно направить меня к какому-либо компоненту по моему выбору, скажем, к домашнему компоненту, но это не так, и сказать, что маршрут не определен. Я перепробовал буквально все, но не смог заставить это работать.
Это инициализатор, который срабатывает, когда приложение загружается прямо перед всем. Я попытался вызвать некоторые другие веб-сервисы в приложении, и это работает, но маршрут не работает.
Javascript windows.location.href
-плохая идея, так как он попадает в инициализатор и продолжает работать в бесконечном цикле.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { APP_INITIALIZER } from '@angular/core';
import { AuthService } from '../_services/auth.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Router } from '@angular/router';
export function ini(http: HttpClient, router: Router,)
{
return async () => {
const cre = 'username=' 'test' 'amp;password=' encodeURIComponent('root') 'amp;grant_type=' 'password';
var reqH= new HttpHeaders; reqHeader.set('Content-Type','application/. x-www-form-urlencoded');
reqH.set('Access-Control-Allow-Origin','*');
const Login = "localhost:44343/login/check";
await http.post(Login, credentials, { headers: reqH }).toPromise().then( (data:any)=> { router.navigate(["/NoPermission"]); }); } }
@NgModule(
{
providers: [ { provide: APP_INITIALIZER,
useFactory: ini ,
deps: [HttpClient, Router],
multi: true,
},
],
imports: [ CommonModule, BrowserModule ] })
export class TypesModule { }