Angular2 - is it possible to get component class name using selector name

…衆ロ難τιáo~ 提交于 2019-12-07 10:26:50

问题


Is it possible to get component class name or component reference using selector name in Angular 2?

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

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

In component 2 is it possible to get the component1 class name using selector "selector-1"?

Example:

getComponentName(selectorName) {
 // return component name
}

getComponentName('selector-1');

Thanks in advance


回答1:


It is possible without additional work only if you do not call enableProdMode:

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

Otherwise you will have to maintain component map yourself.



来源:https://stackoverflow.com/questions/47096635/angular2-is-it-possible-to-get-component-class-name-using-selector-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!