我正在研究一个Angular项目(Angular 4.0.0),我无法将抽象类的属性绑定到ngModel,因为我首先需要将它作为实际的具体类来转换为访问该属性 .
即我有一个AbstractEvent类,它有一个具体的实现Event,它有一个布尔属性'acknowigned',我需要通过ngModel双向绑定来设置一个复选框 .
我目前在我的DOM中有这个元素:
<input type="checkbox" *ngIf="event.end" [(ngModel)]="(event as Event).acknowledged"
[disabled]="(event as Event).acknowledged">
不幸的是,这会引发以下错误:
未捕获错误:模板解析错误:分析器错误:缺少预期)在第8列[(事件为事件) . 已确认]
谷歌搜索似乎表明这可能是因为在模板中使用它时不支持使用'as'?虽然我不确定这一点 .
我也无法弄清楚如何在驱动模板的typescript文件中为它编写一个函数,因为这会破坏我需要的ngModel上的双向绑定 .
如果有人有办法解决这个问题或正确地在角度模板中进行类型转换,我将非常感激!
1 回答
这是不可能的,因为无法从模板中引用
Event
.(模板绑定表达式中也不支持
as
)您需要先使其可用:class MyComponent {
EventType =事件;
然后这应该工作[(ngModel)] =“(事件作为EventType).acknowledged”
update
然后用它作为