我按以下方式使用
app-somecomponent
<app-somecomponent required></app-somecomponent>
如何检查
app-somecomponent
是否具有 required
中的 app-somecomponent.component.ts
属性?我不不想对所需属性使用任何值(因此[required]="true"
,例如不允许)
关于 - AngularJS 相当于 hasAttribute()? -
$attr
在较新版本的 Angular 中不可用。
尝试
@Input() required;
isRequired: boolean;
ngOnInit() {
this.isRequired = this.required !== undefined;
}
如果有一个选项
required
可以取值,试试这个
required: boolean;
constructor(@Attribute('required') required: boolean) {
this.required = required;
}
正如 Kaustubh Badrike 所说,如果根本没有设置输入属性,那么它将是
undefined
。无需 OnInit
的简单方法是使用 setter:
@Input() set required(value: any) {
this.isRequired = value !== undefined;
}
isRequired = false;
您可以使用 viewchild 装饰器从组件中获取所有属性
@ViewChild('localref', {static:true}) localref: ElementRef;
ngOnInit() {
console.log(this.localref)
}
模板:
<app-somecomponent required></app-somecomponent>
这是相同的工作演示演示
检查控制台以获得答案。