我正在使用Angular测试模板驱动的表单,只是测试而不进行验证。
我已经阅读到可以使用ViewChild属性来完成此操作,但似乎对我无效。
我在我的表单标签中创建了一个引用,类似于这样:
<label #ref id=.. class=...>
现在,在我的组件中,我这样做:
@ViewChild('ref') ref:ElementRef;
因此,我假设我创建了一个类型为ElementRef的变量,它是我的input的viewChild。现在我可以在我的测试中使用ref。
在我的测试中,我这样做:
let ref: HTMLElement:
it(....=>
{
ref = fixture.debugElement.query(By.css('ref')).nativeElement;
fixture.detectChanges();
expect(ref.innerHTML)toContain('Name');// or whatever
}
)
即使我已经导入了ElemntRef,仍然会出现"nativeElement属性无法读取"的错误。
这样访问DOM元素的方式正确吗?或者这个viewChild并没有引用我的标签?
再次提问:我能否使用ID来访问表单元素?据我所读,他们使用带#的引用。
谢谢!
elementRef
访问原生元素。 - Kunal Mukherjee