关于Angular schemas

模式属性

schemas属性指定了在Angular组件或指令之外定义的元素和属性在HTML解析器中如何处理。

在SchemaMetadata类型的属性中,可以指定下表中的两种类型。

プロパティ 挙動   NO_ERRORS_SCHEMAすべての要素とプロパティを許可します。CUSTOM_ELEMENTS_SCHEMA’-‘ を含む要素をカスタムエレメントとして扱い、それのみを許可します。

没有错误模式

假设在测试对象的模板中,使用了其他组件。

如果没有将被使用的子组件添加到TestBed中,Angular编译器在测试执行期间将无法识别子组件的标签,并抛出异常。

如果继续按照目前的方式,每次都需要在TestBed中写入所有子组件的代码,那么准备工作将变得非常繁琐。因此,我们可以通过向测试模块的元数据中添加schemas属性,并在其中添加NO_ERRORS_SCHEMA来告诉编译器忽略无法识别的元素和属性。

只需添加NO_ERRORS_SCHEMA,就不再需要将不相关的组件或指令追加到TestBed内部。

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [ BaseHeaderComponent ],
    schemas: [NO_ERRORS_SCHEMA]//ここ追加
  })
  .compileComponents();
 }));
bannerAds