角度-如何检查组件标签上是否具有特定属性?

时间:2020-06-19 11:14:20

标签: javascript angular dom

我通过以下方式使用app-somecomponent

<app-somecomponent required></app-somecomponent>

如何检查app-somecomponent是否具有required的{​​{1}}属性?我不要不要为必填属性使用任何值(例如,不允许使用app-somecomponent.component.ts

关于-AngularJS equivalent for hasAttribute()?-[required]="true"在较新的Angular版本中不可用。

3 个答案:

答案 0 :(得分:3)

尝试

  @Input() required;
  isRequired: boolean;

  ngOnInit() {
    this.isRequired = this.required !== undefined;
  }

StackBlitz

答案 1 :(得分:0)

如果required可以选择取值,请尝试

required: boolean;

constructor(@Attribute('required') required: boolean) {
  this.required = required;
}

答案 2 :(得分:0)

您可以使用viewchild装饰器从组件中获取所有属性

@ViewChild('localref', {static:true}) localref: ElementRef;

  ngOnInit() {
    console.log(this.localref)
  }

模板:

<app-somecomponent required></app-somecomponent>

这是同一demo

的有效演示

检查控制台以获取答案。