首页 文章

如果'<x>'是Angular组件,则验证它是否为此模块的一部分

提问于
浏览
4

我在使用Angular的组件时遇到了麻烦 . 我的应用程序只使用一个模块(app.module) . 我创建了一个名为'BooksComponent'的组件,其中包含一个用于html的选择器'app-books' . 当我在app.component中使用它时,我收到此错误:

'app-books'不是已知元素:1 . 如果'app-books'是Angular组件,则验证它是否是此模块的一部分 . 2.如果'app-books'是Web组件,则将'CUSTOM_ELEMENTS_SCHEMA'添加到此组件的'@ NgModule.schemas'以禁止显示此消息 .

我的代码是这样的:

books.component.ts

import { Component, OnInit } from '@angular/core';
import { Book } from '../book';
import { BOOKS } from '../mock-books';


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

        books = BOOKS;
        selectedBook : Book;

  constructor() { }

  ngOnInit() {
  }

}

app.component.ts

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


@Component({
  selector: 'app-root',
  template: `<h1>{{title}}</h1>
            <app-books></app-books>`
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'BookShelf';
}

最后: app.module.ts

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


import { AppComponent } from './app.component';
import { BooksComponent } from './books/books.component';
import { BookDetailComponent } from './book-detail/book-detail.component';


@NgModule({
  declarations: [
    AppComponent,
    BooksComponent,
    BookDetailComponent,

  ],
  imports: [
    BrowserModule,
    FormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我已经在app模块中声明并导入BooksComponent,所以我无法理解我错过了什么!请帮忙!

1 回答

  • 8

    如果在运行测试时遇到错误,则可能意味着规范需要了解新组件 BooksComponent .

    要解决此问题,请将以下内容添加到 app.component.spec.ts 文件中 .

    import { BooksComponent } from './books/books.component';
    

    beforeEach ()方法的声明中,添加如下所示的新组件:

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

相关问题