微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 CoreUI 和 Amplify 为 Angular 配置路由和重定向?

如何解决如何使用 CoreUI 和 Amplify 为 Angular 配置路由和重定向?

我是 CoreUI 的新手,我感觉我的问题源于它完全是一个真正的单页应用程序。

目前我有它的工作,当用户没有登录到网站时,他们会被提示登录登录后,他们将被重定向。唯一的问题是该站点没有按应有的方式显示,而不是显示整个站点,它只是将小元素显示为整个站点在这种情况下是显示仪表板组件。我希望在没有登录步骤和重定向的情况下加载整个站点

一旦在页面上点击该站点就会恢复正常。

对不起,如果这没有意义,但这是我能解释的最好方式。

下面我有当前的代码,任何帮助将不胜感激。

app.routing.ts

import { NgModule } from '@angular/core';
import { Routes,RouterModule } from '@angular/router';

import { LoginComponent } from './login.component';

// Import Containers
import { DefaultLayoutComponent } from './containers';

export const routes: Routes = [
  {path: 'login',component: LoginComponent},{
    path: '',redirectTo: 'dashboard',pathMatch: 'full',},component: DefaultLayoutComponent,data: {
      title: 'Home'
    },children: [
      {
        path: 'dashboard',loadChildren: () => import('./views/dashboard/dashboard.module').then(m => m.DashboardModule)
      },{
        path: 'base',loadChildren: () =>
          import('./views/base/base.module').then((m) => m.BaseModule),}
    ]
  }
];

@NgModule({
  imports: [
    RouterModule.forRoot(routes,{
    scrollPositionRestoration: 'top',anchorScrolling: 'enabled',relativeLinkResolution: 'legacy'
}),],exports: [RouterModule],})
export class AppRoutingModule {}

login.component.ts

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { environment } from '../environments/environment';
import {Auth} from 'aws-amplify';

import {  ChangeDetectorRef } from '@angular/core';
import { onAuthUIStateChange,CognitoUserInterface,AuthState } from '@aws-amplify/ui-components';

@Component({
  selector: 'login-root',templateUrl: './login.component.html',styleUrls: ['./login.component.scss']
})
export class LoginComponent {
  title = 'amplify-angular-auth';
  user: CognitoUserInterface | undefined;
  authState: AuthState;

  constructor(    private router: Router,private ref: ChangeDetectorRef) {}

  ngOnInit() {

    onAuthUIStateChange((authState,authData) => {
      this.authState = authState;
      this.user = authData as CognitoUserInterface;
      if (this.authState === 'signedin') {
        this.redirectTo('/dashboard');
      }
    }) 
  }

  redirectTo(uri:string){
    this.router.navigateByUrl('/',{skipLocationChange: true}).then(()=>
    this.router.navigate([uri]));
 }

  ngOnDestroy() {
    return onAuthUIStateChange;
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。