Компонент Angular 6 NgModule

Я работаю с Angular 6. У меня есть следующие ts

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

// debugger;

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
}

у меня следующая ошибка

Component 'AppComponent' is not included in a module and will not be available inside a template. Consider adding it to a NgModule declaration

У меня есть определение NgModule

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { ProductComponent } from "./component";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";

@NgModule({
    imports: [BrowserModule, FormsModule, ReactiveFormsModule],
    declarations: [ProductComponent],
    bootstrap: [ProductComponent]
})
export class AppModule {}

Должен ли я включать AppComponent в этот NgModule?

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
1 127
6

Ответы 6

Вам нужно добавить AppComponent в тот модуль, в котором вы хотите его использовать. Если вы загружаетесь ProductComponent и использовать AppComponent внутри него, вам нужно добавить их в тот модуль, в котором вы использовали ProductComponent.

Сначала вы должны импортировать AppComponent в «app.module.ts», а после этого вы должны объявить его и добавить в бутстрап следующим образом:

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { ProductComponent } from "./component";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { AppComponent } from './app.component';

@NgModule({
    imports: [BrowserModule, FormsModule, ReactiveFormsModule],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})
export class AppModule {}

Component 'AppComponent' is not included in a module and will not be available inside a template. Consider adding it to a NgModule declaration

Исправить: Если вы нигде не используете AppComponent и вместо этого загружаете свое приложение с помощью ProductComponent, просто удалите селекторы «app-root» из любого html-файла, который его включает (я подозреваю, что файл index.html в вашем корневом каталоге)

Или, если вы действительно хотите его использовать, вам придется импортировать AppComponent в ваш app.module.ts и также объявить его в массиве объявлений декоратора NgModule.

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { ProductComponent } from "./component";
import { AppComponent } from "./app.component";      // import it here
import { FormsModule, ReactiveFormsModule } from "@angular/forms";

@NgModule({
    imports: [BrowserModule, FormsModule, ReactiveFormsModule],
    declarations: [ProductComponent, AppComponent],    //declare it here
    bootstrap: [ProductComponent]
})
export class AppModule {}

Если вы используете селектор AppComponent (обычно корень приложения) в любом месте вашего приложения, удалите его, так как он больше не требуется.

Поскольку вы задаете этот вопрос, вы новичок в angular 2+. К вашему сведению:

  • Любой новый компонент, который мы создали, должен быть настроен (добавлен) в Массив декларации рядом с ngModule. В вашем случае это app.module.ts.
  • Любой новый сервис или канал, который мы создали, должен быть настроен (добавлен) в массиве провайдеры рядом с ngModule. В вашем случае это app.module.ts.

Пример app.modules.ts выглядит следующим образом:

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

import { AppComponent } from './app.component';
import { BillingComponent } from './billing/billing.component';
import { RouterModule } from '@angular/router';
import { rootRouterConfig } from './app.route';
import { HomeComponent } from './home/home.component';
import { CustomersComponent } from './customers/customers.component';
import { GasStorageComponent } from './gas-storage/gas-storage.component';

import {MatButtonModule, MatCheckboxModule} from '@angular/material';
import {MatExpansionModule} from '@angular/material/expansion';
import {MatFormFieldModule} from '@angular/material/form-field';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';



@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    BillingComponent,
    CustomersComponent,
    GasStorageComponent
  ],
  imports: [
    BrowserModule,
    RouterModule.forRoot(rootRouterConfig),
    MatButtonModule,
    MatCheckboxModule,
    MatExpansionModule,
    MatFormFieldModule,
    BrowserAnimationsModule,
    NoopAnimationsModule,
    FormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

You have to first import the component in your app module and then add the app component in the declarations array

import { NgModule } from "@angular/core";
    import { BrowserModule } from "@angular/platform-browser";
    import { ProductComponent } from "./component";
    import {AppComponent} from './components/app.component'
    import { FormsModule, ReactiveFormsModule } from "@angular/forms";

    @NgModule({
        imports: [BrowserModule, FormsModule, ReactiveFormsModule],
        declarations: [ProductComponent,AppComponent],
        bootstrap: [ProductComponent]
    })
    export class AppModule {}

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