未捕获的错误:模板解析错误:尽管已经使用角度cli生成了'component',但它不是一个已知元素

时间:2018-07-21 05:28:25

标签: angular angular-cli

检查页面时显示错误:

Uncaught Error: Template parse errors:
'registration' is not a known element:
1. If 'registration' is an Angular component, then verify that it is part of this module.
2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.

首先,我使用角度cli生成了“名称”组件:

ng g c name

它已成功生成并注册到app-module.ts

PS C:\Users\prtkh\Desktop\hello-world> ng g c name
CREATE src/app/name/name.component.html (31 bytes)
CREATE src/app/name/name.component.spec.ts (670 bytes)
CREATE src/app/name/name.component.ts (293 bytes)
CREATE src/app/name/name.component.css (0 bytes)
UPDATE src/app/name.module.ts (654 bytes)

我检查了name.component.ts:

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

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

  constructor() { }

  ngOnInit() {
  }

}

和name.component.spec.ts:

import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { NameComponent } from './name.component';

describe('NameComponent', () => {
  let component: NameComponent;
  let fixture: ComponentFixture<NameComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ NameComponent ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(NameComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

得知我的 angular版本 6.0.7 ,而 angular-cli版本 6.0.8 。 / p>

在我的 app-component.html

     <h1>Angular</h1>
   <name></name>

在我的 app-module.ts 中,name组件位于declarationexport中:

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

import { AppComponent } from './app.component';
import { NameComponent } from './name/name.component';

@NgModule({
  declarations: [
    AppComponent,
    NameComponent
  ],
  exports: [
    NameComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [
  ],
  bootstrap: [AppComponent]
})
export class AppModule { 

}

我是Angular的初学者,所以我认为不会发生问题,因为我在Angular-CLI中使用了简写命令来生成组件的所有样板代码。

2 个答案:

答案 0 :(得分:0)

app-component.html中的简单解决方案。您必须按照以下方式访问

您的html代码部分错误,<name></name>

像这样改变

<app-registration></app-registration>

仅此而已。它可以解决您的问题。

让我们尝试一次,让我知道。

答案 1 :(得分:0)

您应在应用注册

的html代码中使用应用选择器

所以它的标签是

$div

您应该更改

<app-registration></app-registration>.

收件人

   <name></name>