我创建了一个抽象父类(super class)来处理我应用中各种表单组件的通用因素。
出于某种原因,我无法正确捕获由在父类(super class)中声明了 EventEmitter
的派生类发出的事件。
父类(super class):
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 无法识别父类(super class)中的此类装饰器。
您可以使用 @Component()
注释启用它们
@Component({
selector: '...',
outputs: ['submitted'],
inputs: ['...']
})
关于来自父类的Angular2 EventEmitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743093/