如何解决如何使用 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 举报,一经查实,本站将立刻删除。