Селектор компонента «AppFooterComponent» должен использоваться как элемент - PullRequest
0 голосов
/ 03 июля 2018

Структура моей заявки следующая:

<body>
  <header>[...]</header>
  <main>[...]</main>
  <footer><app-footer></app-footer></footer>
</body>

Поскольку я не хочу ненужных элементов DOM, я предпочитаю объявлять app-footer в качестве атрибута, чтобы я мог объявить страницу следующим образом:

<body>
  <header>[...]</header>
  <main>[...]</main>
  <footer app-footer></footer>
</body>

Но если я это сделаю, я получаю следующее сообщение об ошибке при выполнении ng lint

В качестве элемента должен использоваться селектор компонента «AppFooterComponent» (https://angular.io/styleguide#style-05-03)

Я думаю, что этот случай является законным исключением из правила. Ты согласен? Если да, то как я могу объявить этот конкретный компонент как исключение для этого правила?

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Хотя это считается плохой практикой (согласно руководству по стилю), вы все равно можете отключить это конкретное правило ts lint для этого конкретного компонента.

для этого используйте / * tslint: disable: component-selector * / прямо перед аннотацией компонента, чтобы объявление компонента выглядело следующим образом:

/* tslint:disable:component-selector */
@Component({
    selector: '[app-footer]',
    templateUrl: './app-footer.component.html'
})
export class AppFooterComponent 
0 голосов
/ 03 июля 2018

, когда вы определяете @Component angular, позволяет использовать этот компонент только как элемент html. Если вы хотите использовать его как атрибут элемента, сделайте @Directive

import { Directive } from '@angular/core';

@Directive({
  selector: '[app-footer]'
})
export class AppFooter { 
   .....
}

Doc

...