Маршрутизация Angular 7

#angular #angular-material #angular-routing

#angular #angular-материал #angular-маршрутизация

Вопрос:

Я получаю сообщение об ошибке в моем приложении Angular 7

И вот в чем ошибка.

Ошибка: Неверная конфигурация «панели мониторинга» маршрута. Должен быть предоставлен один из следующих компонентов: component, redirectTo, дочерние элементы или loadChildren

Я создаю приложение для ввода и вывода времени ожидания с использованием Angular 7.

У меня уже есть мой asp.net основной веб-API, который обрабатывает вход в систему, и он работал так, как ожидалось.

Затем я решил добавить dashboard и employees

введите описание изображения здесь

Затем я добавил файл routes.ts

И это код для класса

 import { Component, OnInit } from '@angular/core';

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

  constructor() { }

  ngOnInit() {
  }

}
  

Затем я изменил файл app.module.ts

и добавлено

 import { RouterModule } from '@angular/router';
  

Затем я также добавил этот код в imports array

 RouterModule.forRoot(appRoutes)
  

Но при перезагрузке приложения Angular 7 на всякий случай, чтобы проверить, нет ли в нем ошибки.

Ошибка main.ts:12: Неверная конфигурация «панели мониторинга» маршрута. Должен быть предоставлен один из следующих компонентов: component, redirectTo, дочерние элементы или loadChildren в validateNode (router.js:607) в validateConfig (router.js:577) в Router.push../node_modules/@angular/router/fesm5/router.js.Router.resetConfig (router.js: 4108) на новом маршрутизаторе (router.js: 3784) на setupRouter (router.js: 5567) на _callFactory (core.js: 21292) на createProviderInstance (core.js: 21238) на initNgModule (core.js: 21168) на новом NgModuleRef (core.js: 21895) на createNgModuleRef (core.js: 21884)

В чем причина этого? И может кто-нибудь подсказать мне, как это решить?

Я уже пытался найти решение и попробовал то, которое работает для них, но ошибка все еще там. Что мне нужно для того, чтобы это заработало?

Это app-routing.module.ts код

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

const routes: Routes = [
  { path: 'dashboard'}
];

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

Мой ожидаемый результат для этого заключается в том, что в нем нет ошибки, поэтому я могу перенаправить на компонент панели мониторинга при успешном входе в систему

И это код для app.component.html

 <app-login></app-login> 
<router-outlet></router-outlet>
  

Большое вам спасибо.

Таким образом, мы

Комментарии:

1. каково значение appRoutes здесь, можете ли вы отредактировать свой вопрос??

2. Вопросы, требующие помощи в отладке («почему этот код не работает?»), должны включать желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для ее воспроизведения в самом вопросе. Вопросы без четкой формулировки проблемы не полезны другим читателям. Смотрите: Как создать минимальный, полный и поддающийся проверке пример.

3. @NiraliPatel привет. Я обновил вопрос. Я добавил код app-routing.module.ts

4. хорошо, теперь вы можете проверить, текущие ответы помогут вам

5. @Ramonbihon Предоставьте код app.module.ts, потому что я думаю, что проблема в этом модуле!

Ответ №1:

вы должны создать файл app.routing.ts с маршрутами, это мой пример для вас:

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

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

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

export const routes: Routes = [
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full',
  },
  {
    path: 'login',
    component: LoginComponent,
    data: {
      title: 'Login Page'
    }
  },
  {
    path: '',
    component: DefaultLayoutComponent,
    data: {
      title: 'Home'
    },
    children: [
      {
        path: 'crm',
        loadChildren: './views/crm/crm.module#CrmModule'
      },
   ]
  }
];

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

Удачи!

Ответ №2:

сама ошибка, говорящая о том, что вы должны предоставить свойство component , redirectTo children or loadChildren объекту appRoute, в котором вы определяете маршруты,

Итак, здесь вам, должно быть, не хватает чего-либо из вышеперечисленного.

пример

 import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import { LoginComponent } from './components/login/login.component';

const routes: appRoutes = [
  { path: 'alerts', loadChildren: './components/alerts/alerts.module#AlertsModule' },
  { path: 'settings/assets', loadChildren: './components/settings/assets/assets.module#AssetsModule' },
  { path: 'dashboard', loadChildren: './components/dashboard/dashboard.module#DashboardModule' },
  { path: 'reports', loadChildren: './components/reports/reports.module#ReportsModule' },
  { path: 'settings/alert', loadChildren: './components/settings/alert/alert.module#AlertModule' },
  { path: 'settings/control-framework', loadChildren: './components/settings/control-framework/control-framework.module#ControlFrameworkModule' },
  { path: 'login', component: LoginComponent },
  { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
  { path: '**', redirectTo: '/dashboard' }
];

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