Angular2 - возможно ли получить имя класса компонента, используя имя селектора

Можно ли получить имя класса компонента или ссылку на компонент, используя имя селектора в Angular 2?

@Component({
  selector: 'selector-1',
  template: '<h1>Hello</h1>',
})
export class Component1 {}

@Component({
      selector: 'selector-2',
      template: '<h1>Hello</h1>',
    })
    export class Component2 {}

В компоненте 2 возможно ли получить имя класса component1 с помощью селектора "selector-1"?

Пример:

getComponentName(selectorName) {
 // return component name
}

getComponentName('selector-1');

заранее спасибо

1 ответ

Решение

Это возможно без дополнительной работы, только если вы не звоните enableProdMode:

var node = document.querySelector('selector-1');
var debugNode = window.ng.probe(node);
var name = debugNode.componentInstance.constructor.name;

В противном случае вам придется самостоятельно поддерживать карту компонентов.

Другие вопросы по тегам