[英]Angular2 EventEmitter from parent class
我創建了一個抽象超類來處理我的應用程序中各種表單組件的泛型因素。
出於某種原因,我無法正確捕獲派生類發出的事件,其中EventEmitter
是在超類中聲明的。
超類:
export abstract class Form<T> implements OnInit {
@Output() submitted : EventEmitter<T> = new EventEmitter<T>();
fb : FormBuilder = new FormBuilder();
formModel : ControlGroup;
abstract ngOnInit() : any;
}
衍生:
export class LoginFormComponent extends Form<Login> {
credentials : Login = new Login();
constructor() {
super();
}
doLogin() {
this.submitted.emit(this.credentials);
}
}
封裝元素的HTML:
<login-form (submitted)="login($event)"></login-form>\
當我將EventEmitter
移動到派生類時,一切都像魅力一樣。 我需要更改什么才能使其正常工作?
Angular不承認超類中的這種裝飾器。
您可以使用@Component()
注釋啟用它們
@Component({
selector: '...',
outputs: ['submitted'],
inputs: ['...']
})
問題是@Component
裝飾器不支持繼承(父類中定義的元素)。 它僅考慮當前修飾類中定義的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.