Я новичок в Angular, у меня очень большой проект, который я только что перевел из html / css / php / js в веточку / тонкий проект использовал apache2 / sql но сейчас я собираюсь разместить проект на s3 buckets / lambda apis .
Я без проблем создал и преобразовал несколько базовых проектов в угловой, но сейчас я конвертирую эти более крупные проекты, поэтому мне нужно было разделить проект с помощью модулей. Отсюда и странная маршрутизация (я не уверен, что это лучший способ, но я много его обновлял).
Но в этом более крупном проекте, когда меня перенаправляют с недопустимого URL-адреса, меня перенаправляют на перенаправление индекса localhost:4200
, но страница не загружается, и я получаю сообщение об ошибке:
Начало ошибки ->
core.js:1624 ERROR Error: Uncaught (in promise): TypeError: undefined is not a function
TypeError: undefined is not a function
at Array.map (<anonymous>)
at webpackAsyncContext ($_lazy_route_resource lazy namespace object:32)
at
Конец ошибки ->
defaultErrorLogger @ core.js:1624
Ошибка, похоже, немного меняется как код, но она похожа на TypeError: undefined is not a function
Теперь мой вопрос:
1. Почему происходит эта ошибка и как ее исправить?
2. Если я не могу исправить это, есть способ, которым я могу заставить страницу перезагрузиться после начальной загрузки на перенаправлении
Любая помощь будет очень признательна,
Ура!
(Вот и мой код!)
app.module.ts
import { NgModule } from '@angular/core'; // <-- Import module object
import { AppComponent } from './app.component'; // <-- Main entry point/view
import { RouterModule } from '@angular/router'; // <-- Routing for root
import { routes } from './app.routes'; // <-- Main router
// | External modules |
import { BrowserModule } from '@angular/platform-browser'; // <-- TODO: Look into what this is for
// | Internal modules |
import { AdminModule } from './modules/admin/admin.module';
import { HeroesModule } from './modules/heros/heroes.module';
import { HomeModule } from './modules/home/home.module';
import { TodoModule } from './modules/todo/todo.module';
// | Provider services |
import { UserService } from './user.service';
import { Logger } from './logger.service';
@NgModule({
declarations: [ AppComponent ], // <-- Main entry point
imports: [
RouterModule.forRoot(routes), // <-- Main router
BrowserModule, // <-- TODO: Look into what this is for
AdminModule, HeroesModule, HomeModule, TodoModule // <-- Internal modules
],
providers: [ Logger, UserService ],
bootstrap: [ AppComponent ],
})
export class AppModule { } // <-- Export module class
app.routes.ts
import { Routes } from '@angular/router'; // <-- Import routing
// This redirects all routing to module routers.
export const routes: Routes = [
{ path: '', loadChildren: './modules/admin/admin.module#AdminModule' },
{ path: '', loadChildren: './modules/heros/heroes.module#HeroesModule' },
{ path: '', loadChildren: './modules/home/home.module#HomeModule' },
{ path: '', loadChildren: './modules/todo/todo.module#TodoModule' },
]
// This redirects all routing to module routers.
home.module.ts
import { NgModule } from '@angular/core'; // <-- Import module object
import { CommonModule } from '@angular/common'; // <-- Declaring this module will be used often
import { RouterModule, Routes } from '@angular/router';
// | Internal components |
import { HomeComponent } from './home.component'; // <-- Main entry point
const childRoutes: Routes = [
{ path: '', component: HomeComponent } // <-- Main entry point
];
@NgModule({
declarations: [
HomeComponent, // <-- Main entry point
],
imports: [
CommonModule,
RouterModule.forChild(childRoutes),
],
providers: []
})
export class HomeModule { } // <-- Export module class
Компоненты являются базовыми сгенерированными компонентами с <h1>It works</h1>