繁体   English   中英

Angular 4:获取所有用@Input 修饰的属性

[英]Angular 4: Get all properties that are decorated with @Input

我有一个具有多种属性的输入组件,其中一些使用@Input装饰器进行装饰。

如何在运行时查看哪些属性具有@Input装饰器?

因此,例如使用以下类:

export class MyInputComponent {
    @Input() min: number;
    @Input() max: number;
    ignoreMe: number;
}

我想要以下结果:

> [ 'min', 'max' ]

没有针对此问题的官方解决方案,但是如果使用了您的输入,您可以通过像这样实现OnChanges来观察它们的更改并获取它们的名称:

export class MyInputComponent implements OnChanges{
    @Input() min: number;
    @Input() max: number;
    ignoreMe: number;
    list = [];

    ngOnChanges(changes: SimpleChanges) {   
      for (let propName in changes) {
         this.list.push(propName); 
    }
    console.log("list :",Array.from(new Set(this.list)));
  }


}

希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM