我真的不明白对象绑定是如何工作的,所以如果有人能解释我是否可以在基类中使用@Input(),或者更好:装饰器和继承.
例如,如果每个表单都应该接收一个客户,我有一个基类:
例如,如果每个表单都应该接收一个客户,我有一个基类:
export class AbstractCustomerForm{ @Input() customer; ... }
然后我在实际组件中扩展此类:
export AwesomeCustomerForm extends AbstractCustomerForm implements OnInit{ ngOnInit(){ if(this.customer) doSomething(); } }
但这不起作用,客户永远不会被设置:(
更新
自2.3.0-rc.0以来,正确支持继承
原版的
装饰器不是继承的.它们需要直接应用于用作组件的类.子类上的装饰器将被忽略.我已经看到它提到@Input()或@Output()正在工作,如果只有超类有它们而子类没有.
> https://github.com/angular/angular/issues/5794
> https://github.com/angular/angular/issues/5415
> https://github.com/angular/angular/issues/7191