无法绑定到"matRowDefColumns",因为它不是'mat-row'的已知属性



我正在测试一个使用mat-table的Angular 7组件,并且我定义了一个mock模块,该模块声明并导出一个mock-mat-row组件,如下所示:

@Component({selector: 'mat-row', template: ''}) export class StubMatRowComponent {
@Input() public matRowDefColumns: string[];
}

模板中的用法如下:

<mat-row *matRowDef="let foo; columns: displayedColumns;"></mat-row>

使用此语法,我得到的错误是"无法绑定到‘matRowDefColumns’,因为它不是‘mat row’的已知属性。">

如果我不需要foo,我可以这样写,它会起作用:

<mat-row matRowDef="displayedColumns"></mat-row>

有人知道我如何使用模板语法使mock工作吗?

顺便说一句,很明显,一个替代方案是,我可以导入真实的东西,而不是导入我的mock模块,但同样明显的是,出于测试目的,我更喜欢mock,而不是完全集成。

答案是因为matRowDef结构指令,而不是要绑定的属性,所以必须创建并导入模拟结构指令:

@Directive({
selector: '[matRowDef]'
}) export class StubMatRowDefDirective {
@Input() matRowDefColumns: string[];
}

最新更新