在角度项目中,我需要测试是否将primng数据表的显示表宽度设置为我为其分配的maxWidth值。为此,我想调用[style]属性以获取宽度,并查看其是否等于我的maxWidth。但是,我不知道如何调用这样的属性。我该怎么办?目前我不知道我是否朝着正确的方向前进。
我已经尝试了几种方法,但是不确定其语法。
<p-table class="p-table" ... [style] = "{width: maxWidth}" >
it('should implement maxwidth', () => {
const widthDebug: DebugElement = fixture.debugElement;
const tableWidth = widthDebug.query(By.css('.ui-table .ui-widget'));
const ptable: HTMLElement = tableWidth.nativeElement;
expect(ptable.textContent).toContain("width: " + component.maxWidth);
});
预期:成功(ptable.textContent包含“ width:component.maxWidth”)
实际:TypeError:无法读取null的属性“ nativeElement”
最佳答案
我看到现在已经是您提出问题两个月了,所以对于我的回答来说可能为时已晚,但是我在查找有关PrimeNG的其他内容时偶然发现了这篇文章,因此不妨试一下。
这里的问题是nativeElement
是在Angular Dialog
组件的p-table
类实例上定义的。它没有在任何特定的DOM元素上定义。By.css('.ui-table .ui-widget')
将为您找到一个DOM元素,而不是Angular类实例。特别是,将在<div>
DOM元素内找到一个<p-dialog>
,正是该<div>
接收通过[style]=...
设置的样式。
当您的代码写在tableWidth.style.width
上面时,它将包含(作为字符串)您期望找到的maxWidth
值。