关于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();
}));