Angular - Как проверить, имеет ли тег компонента указанный атрибут c? - PullRequest
0 голосов
/ 19 июня 2020

Я использую app-somecomponent следующим образом:

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

Как мне проверить, имеет ли app-somecomponent атрибут required из app-somecomponent.component.ts? Я не не хочу использовать какое-либо значение для обязательного атрибута (поэтому [required]="true", например, не допускается)

О - AngularJS эквивалент для hasAttribute ()? - $attr недоступен в новых версиях Angular.

Ответы [ 3 ]

3 голосов
/ 19 июня 2020

Попробуйте

  @Input() required;
  isRequired: boolean;

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

StackBlitz

0 голосов
/ 19 июня 2020

Вы можете использовать декоратор viewchild, чтобы получить все атрибуты из вашего компонента

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

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

Шаблон:

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

Вот рабочая демонстрация того же demo

проверьте консоль, чтобы получить ответ.

0 голосов
/ 19 июня 2020

Если есть опция, в которой required может принимать значение, попробуйте это

required: boolean;

constructor(@Attribute('required') required: boolean) {
  this.required = required;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...