Как создать Angular компонент с селектором атрибута через Angular CLI - PullRequest
0 голосов
/ 12 февраля 2020

Я хотел бы создать компонент, подобный этому:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: '[appTest]', // <-- attribute selector 
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.scss']
})
export class TestComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

Обычно я бы использовал команду ng g c test, которая генерирует компонент с селектором элемента

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.scss']
})
export class TestComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

Но когда я пытаюсь указать селектор: ng g c test --selector="[appTest]" выдает эту ошибку:

Schematic input does not validate against the Schema: {"style":"scss","spec":false,"selector":"[appTest]","name":"test","project":"client"}
Errors:

  Data path ".selector" should match format "html-selector".

параметр --selector cli проверяет регулярное выражение, которое не допускает эти селекторы атрибутов:

export const htmlSelectorRe = /^[a-zA-Z][.0-9a-zA-Z]*(:?-[a-zA-Z][.0-9a-zA-Z]*)*$/;

(ссылка: Angular ограничения именования компонентов - 'селектор [имя вашего компонента] недействителен' )

есть ли способ генерировать через cli компонент с селектором атрибута в скобках (например, [appTest])?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

В настоящее время можно создать только назначить селектор, который начинается с буквы и содержит только буквенно-цифровые символы c или тире.

Следующая строка из официального angular исходный код сообщает об этом.

Вы можете запросить новую функцию, отправив сообщение в GitHub Angular / CLI Repository .

0 голосов
/ 12 февраля 2020

Если существует только один, изменение схемы root в angular. Это очень тяжело и сложно, поэтому я должен сказать, что нет возможности. К сожалению.

...