问题描述
我有一系列类似于FormControl的项目-但每个项目都是FormControl的子类型,每个项目都扩展了不同的使用方法。当我使用* ngFor遍历array: FormControl[]
并在其中调用子方法时,如下所示:
<ng-container *ngIf="formControl.type == 1">
<button (click)="formControl.someFunction()">Type 1 function</button>
</ng-container>
我收到一个类型错误,指出someFunction()
在FormControl上不存在。没错,这对我来说很有意义,但是我将如何正确处理Angular中的这种情况?
我已经尝试创建一个使用FormControl
并返回其子类型的管道,该管道有时可以工作,但是在动作表达式中失败(错误:动作表达式中不能有管道)。
有什么方法可以在HTML中进行投射?还是我应该输入formControls数组的另一种方法?我尝试了(ChildType1 | ChildType2 | ChildType3 | FormControl
,但是那也不起作用。
谢谢!
解决方法
我要做的是访问.ts文件中的子函数。
<button (click)="someFunction()">Type 1 function</button>
在.ts文件中
someFunction() {
parent.childfunction()
}