62
задан 29 April 2019 в 16:17

10 ответов

Если Ваш не используют ленивую загрузку, необходимо импортировать HomeComponent в app.module и упомянуть это под объявлениями. Кроме того, не забывайте удалять из импорта

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {FormsModule} from '@angular/forms';
import {HttpModule} from '@angular/http'

import { AppComponent } from './app.component';
import { NavbarComponent } from './navbar/navbar.component';
import { TopbarComponent } from './topbar/topbar.component';
import { FooterbarComponent } from './footerbar/footerbar.component';
import { MRDBGlobalConstants } from './shared/mrdb.global.constants';
import {AppRoutingModule} from './app.routing';
import {HomeModule} from './Home/home.module';
// import HomeComponent here

@NgModule({
  declarations: [
    AppComponent,
    FooterbarComponent,
    TopbarComponent,
    NavbarComponent,
    // add HomeComponent here
  ],
  imports: [
    BrowserModule,
    HttpModule,
    AppRoutingModule,
    HomeModule  // remove this

  ],
  providers: [MRDBGlobalConstants],
  bootstrap: [AppComponent]
})
export class AppModule { }
64
ответ дан 31 October 2019 в 13:43

В моем случае я только должен перезапустить сервер (это - то, если Вы используете ng serve).

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

39
ответ дан 31 October 2019 в 13:43

В моем случае я пропускал свой новый сгенерированный компонент в declarations в app.module.ts:

@NgModule({
  declarations: [
    AppComponent,
    ....
    NewGeneratedComponent, //this was missing
    ....
  ],
  imports: [
    ....
11
ответ дан 31 October 2019 в 13:43

У меня была та же проблема. Причина состояла в том, потому что я создал компонент, в то время как мой сервер все еще работал. Решение состоит в том, чтобы выйти из сервера и подачи ng снова.

9
ответ дан 31 October 2019 в 13:43

В моем случае импорт реальных маршрутов в app.component.spec.ts вызывал эти сообщения об ошибках. Решение состояло в том, чтобы импортировать RouterTestingModule вместо этого.

import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { RouterTestingModule } from '@angular/router/testing';

describe('AppComponent', () => {
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
      imports: [RouterTestingModule]
    }).compileComponents();
  }));

  it('should create the app', async(() => {
    const fixture = TestBed.createComponent(AppComponent);
    console.log(fixture);
    const app = fixture.debugElement.componentInstance;
    expect(app).toBeTruthy();
  }));

});
4
ответ дан 31 October 2019 в 13:43

Я столкнулся с этим сообщением об ошибке в 2 отдельных случаях с ленивой загрузкой в Угловых 7, и вышеупомянутое не помогло. Для обоих из ниже для работы НЕОБХОДИМО остановить и перезапустить подачу ng для него для завершенного обновления правильно.

1) В первый раз я так или иначе неправильно импортировал свой AppModule в ленивый загруженный модуль функции. Я удалил этот импорт из ленивого загруженного модуля, и он начал работать снова.

2) Во второй раз у меня был отдельный CoreModule, который я импортировал в AppModule И тот же ленивый загруженный модуль как № 1. Я удалил этот импорт из ленивого загруженного модуля, и он начал работать снова.

В основном, проверьте свою иерархию импорта и обратите пристальное внимание на порядок импорта (если они импортируются, где они должны быть). Ленивым загруженным модулям только нужен их собственный компонент маршрута / зависимости. Приложение и родительские зависимости будут переданы, импортируются ли они в AppModule или импортируются из другого модуля функции, который НЕ является - ленив загруженный и уже импортированный в родительском модуле.

3
ответ дан 31 October 2019 в 13:43

Я столкнулся с этой той же проблемой и ни одним из того, что я видел, здесь работал. При списке Компонента в проблеме приложения-routing.module, Вы, возможно, столкнулись с той же проблемой, которую я имел.

приложение-routing.module.ts

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

const routes: Routes = [
    { path: 'app/home', component: HomeComponent },
    { path: '', redirectTo: 'app/home', pathMatch: 'full' },
    { path: '**', redirectTo: 'app/home' }
];

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

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { NavbarComponent } from './navbar/navbar.component';
import { TopbarComponent } from './topbar/topbar.component';
import { FooterbarComponent } from './footerbar/footerbar.component';
import { MRDBGlobalConstants } from './shared/mrdb.global.constants';
import {AppRoutingModule} from './app.routing';
import {HomeModule} from './Home/home.module';
// import HomeComponent here

@NgModule({
  declarations: [
    AppComponent,
    FooterbarComponent,
    TopbarComponent,
    NavbarComponent,
    // add HomeComponent here
  ],
  imports: [
    BrowserModule,
    HttpModule,
    AppRoutingModule,
    HomeModule  // remove this

  ],
  providers: [MRDBGlobalConstants],
  bootstrap: [AppComponent]
})
export class AppModule { }

home/index.ts

export * from './';

home/home.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
// import { HomeComponent } from './home.component'; This would cause app to break
import { HomeComponent } from './';
@NgModule({
  imports: [
    CommonModule
  ],
  exports: [HomeComponent],
  declarations: [HomeComponent]
})
export class HomeModule { }

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

2
ответ дан 31 October 2019 в 13:43

В моем случае, Угловых 6, я переименовал имена папок и имена файлов моих модулей от google.map.module.ts до google-map.module.ts. для компиляции без наложения со старым модулем и именами компонентов, ng компилятор, скомпилированный без ошибки. enter image description here

В app.routes.ts:

     {
        path: 'calendar', 
        loadChildren: './views/app-calendar/app-calendar.module#AppCalendarModule', 
        data: { title: 'Calendar', breadcrumb: 'CALENDAR'}
      },

В google-map.routing.ts

import { GoogleMapComponent } from './google-map.component';
const routes: Routes = [
  {
    path: '', component: GoogleMapComponent, data: { title: 'Coupon Map' }
  }
];
@NgModule({
    exports: [RouterModule],
    imports: [RouterModule.forChild(routes)]
})
export class GoogleMapRoutingModule { }

В google-map.module.ts:

import { GoogleMapRoutingModule } from './google-map.routing';
@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    CommonModule,
    GoogleMapRoutingModule,
  ],
  exports: [GoogleMapComponent],
  declarations: [GoogleMapComponent]
})
export class GoogleMapModule { }
1
ответ дан 31 October 2019 в 13:43

Я столкнулся с той же проблемой. Я создал другой компонент с тем же именем под другой папкой. таким образом в моем модуле приложения я должен был импортировать оба компонента, но с приемом

import {DuplicateComponent as AdminDuplicateComponent} from '/the/path/to/the/component';

Затем в объявлениях я мог добавить AdminDuplicateComponent вместо этого.

Просто мысль, что я оставил бы это там для дальнейшего использования.

1
ответ дан 31 October 2019 в 13:43

если Вы используете ленивую загрузку, затем должен загрузить тот модуль в любом модуле маршрутизатора, как в приложении-routing.module.ts {соединяют:'home каналом', loadChildren: './home.module#HomeModule'}

0
ответ дан 31 October 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: