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;
В противном случае вам придется самостоятельно поддерживать карту компонентов.