NG8001 Angular Origin: On your device Angular 14+ Last updated 15 Oct 2026

Angular: NG8001: 'app-item' is not a known element — verify that it is included in the component's imports

The template uses a tag Angular does not recognise as a component — it was never imported (standalone) or declared/exported (NgModule), or it is a custom element without a schema.

Exact message you may see is not a known element'router-outlet' is not a known elementIf 'app-item' is an Angular component, then verify that it is part of this module'mat-form-field' is not a known element
Seen on: Angular TypeScript

Meaning

Angular only compiles tags that map to a component, a known HTML element or a custom element that you allow. With standalone components, add the component to the imports array of the component that uses it. With NgModules, declare it in a module and export it from the module that owns it. <router-outlet> needs RouterOutlet, Material tags need their module.

Common causes

  • Standalone component not added to the imports array of the parent
  • Component declared in one NgModule but not exported to the module that uses it
  • Typo in the selector, or the selector prefix differs (app- vs my-)
  • Angular Material / third-party component module not imported (for example RouterOutlet, MatButtonModule)
  • A Web Component used without CUSTOM_ELEMENTS_SCHEMA

⚡ Quick fix

  1. Add the component, directive or module to the imports of the component that uses the tag
  2. In NgModules add it to declarations and to exports of the owning module
  3. For real Web Components add schemas: [CUSTOM_ELEMENTS_SCHEMA]

Detailed fix by platform

Angular

  1. Standalone: imports: [ItemComponent, RouterOutlet] in the @Component decorator
  2. NgModule: put ItemComponent in declarations and exports, then import that module where the tag is used

Angular CLI

  1. Generate components with the CLI so selectors and exports are wired up: ng generate component item

Code examples

Import what the template uses

typescript
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { ItemComponent } from './item.component';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [RouterOutlet, ItemComponent],   // every tag used in the template must be listed
  template: `<app-item></app-item><router-outlet></router-outlet>`,
})
export class AppComponent {}

How to diagnose

  1. Tag — Exact tag and selector spelling?
  2. Scope — Is the component imported (standalone) or declared and exported (module)?
  3. Version — Standalone or NgModule project?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

mat-form-field must contain a MatFormFieldControl — Angular Material: Error: mat-form-field must contain a MatFormFieldControl (Angular)mat-form-field must c…NG02200 — Angular: NG02200: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays (Angular)NG02200NG0300 — Angular: NG0300: Multiple components match node with tagname app-x: A and B (Angular)NG0300NG0301 — Angular: NG0301: Export of name 'x' not found! (template variable #x="exportAs") (Angular)NG0301NG0912 — Angular: NG0912: Component ID generation collision detected. Components 'A' and 'B' with selector 'app-x' use the same ID (Angular)NG0912NG6008 — Angular: NG6008: Component X is standalone, and cannot be declared in an NgModule. Did you mean to import it instead? (Angular)NG6008NG8002 — Angular: NG8002: Can't bind to 'ngModel' since it isn't a known property of 'input' (Angular)NG8002NG8003 — Angular: NG8003: No directive found with exportAs 'ngForm' (template reference variable) (Angular)NG8003NG8001

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.