路由“ auth”的配置无效必须提供以下之一:component,redirectTo,children或loadChildren

问题描述

我试图在我的应用目录中设置到组件的路由。由于某种原因,我保留此错误Invalid configuration of route 'auth'. One of the following must be provided: component,redirectTo,children or loadChildren。我认为AuthComponent显示为undefined,但我不明白为什么。我不是角度专家,所以我可能会犯语法错误。任何帮助,我们将不胜感激!

这是我的app-routing.module.ts:

import { ExtraOptions,RouterModule,Routes } from '@angular/router';
import { NgModule } from '@angular/core';
import { AuthComponent } from './auth/auth.component'

const routes: Routes = [
 { 
   path: 'auth',component: AuthComponent 
 },];

const config: ExtraOptions = {
 useHash: false,};

@NgModule({
 imports: [RouterModule.forRoot(routes,config)],exports: [RouterModule],})
export class AppRoutingModule {}

这是我的auth.component.ts:

import { Component,OnInit,ChangeDetectorRef } from '@angular/core';
import { Router } from '@angular/router';
import { NbAuthSocialLink } from '@nebular/auth';
import { NbAuthService } from '@nebular/auth';

export declare class AuthComponent {

   protected service: NbAuthService;
    protected options: {};
    protected cd: ChangeDetectorRef;
    protected router: Router;
    redirectDelay: number;
    showMessages: any;
    strategy: string;
    errors: string[];
    messages: string[];
    user: any;
    submitted: boolean;
    socialLinks: NbAuthSocialLink[];
    rememberMe: boolean;
    constructor(service: NbAuthService,options: {},cd: ChangeDetectorRef,router: Router);
    login(): void;
    getConfigValue(key: string): any;
}

解决方法

Angular使用注释来定义似乎是您缺少的组件。

@Component({
  selector: 'app-my-auth',templateUrl: './my-auth.component.html',styleUrls: ['./my-auth.component.scss'],providers: [myServiceService]
 })

创建这些注释的最简单方法是让您的角度cli工作,只需运行命令ng g c Auth(它是ng generate component Auth的缩写),它将创建一个名为“ AuthComponent”的类并将其注册到您的模块中。

完成后,您可以将组件代码移入其中,并在路由模块中使用引用。

这些组件也需要在模块中定义才能使用。对于简单的项目,您可以将它们放在应用程序模块中,否则,通常的最佳实践是延迟加载模块并将组件分离到其中,并为在整个站点上共享的组件创建单独的模块。