相关疑难解决方法(0)

带有@Injectable() 的 Angular 9 BaseComponent

在 Angular 8 中,我能够创建具有“@Injectable”属性的基础组件(对从中继承的实际组件进行类)。Angular 9 编译器告诉我:

组件 YourComponent 从 BaseComponent 继承其构造函数,但后者没有自己的 Angular 装饰器。依赖注入将无法解析 BaseComponent 的构造函数的参数。向 BaseComponent 添加 @Directive 装饰器,或向 RoleSelectDialogComponent 添加显式构造函数。

现在 Angular 9 做这些事情的方式是什么?这有效,但看起来有点hacky:

@Component({
    selector: 'baseComponent',
    template: 'no-ui'
})
Run Code Online (Sandbox Code Playgroud)

angular angular9

11
推荐指数
2
解决办法
8496
查看次数

@Input和其他装饰器和继承

我真的不明白对象绑定是如何工作的,所以如果有人能解释我是否可以在基类中使用@Input(),或者更好:装饰器和继承.例如,如果每个表单都应该接收一个客户,我有一个基类:

export class AbstractCustomerForm{

@Input() customer;
...
}
Run Code Online (Sandbox Code Playgroud)

然后我在实际组件中扩展此类:

export AwesomeCustomerForm extends AbstractCustomerForm implements OnInit{
    ngOnInit(){

        if(this.customer)
            doSomething();

    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,客户永远不会被设置:(

angular2-inputs angular

9
推荐指数
3
解决办法
5797
查看次数

标签 统计

angular ×2

angular2-inputs ×1

angular9 ×1