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

时间:2017-10-17 10:13:39

标签: angular

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

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

例如,使用以下类:

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

我想要以下结果:

> [ 'min', 'max' ]

1 个答案:

答案 0 :(得分:2)

此问题没有官方解决方案,但是如果您使用了输入,则可以通过这样的方式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)));
  }


}

希望有所帮助:)