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

问题描述 投票:0回答:4

我按以下方式使用

app-somecomponent

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

如何检查

app-somecomponent
是否具有
required
中的
app-somecomponent.component.ts
属性?我不想对所需属性使用任何值(因此
[required]="true"
,例如不允许)

关于 - AngularJS 相当于 hasAttribute()? -

$attr
在较新版本的 Angular 中不可用。

javascript angular dom
4个回答
4
投票

尝试

  @Input() required;
  isRequired: boolean;

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

堆栈闪电战


0
投票

如果有一个选项

required
可以取值,试试这个

required: boolean;

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

0
投票

正如 Kaustubh Badrike 所说,如果根本没有设置输入属性,那么它将是

undefined
。无需
OnInit
的简单方法是使用 setter:

  @Input() set required(value: any) {
    this.isRequired = value !== undefined;
  }
  isRequired = false;

-1
投票

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

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

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

模板:

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

这是相同的工作演示演示

检查控制台以获得答案。

© www.soinside.com 2019 - 2024. All rights reserved.