Angular:如何从组件内的“Component”装饰器访问属性“selector”?

Ste*_*fan 6 angular-decorator angular

我想要什么(伪代码):

@Component({
  selector: 'app-some-component',
  ....
})
export class SomeComponentComponent { 

    constructor() {
        console.log(@COMPONENT.SELECTOR); // logs 'app-some-component'
    }

    ....
}
Run Code Online (Sandbox Code Playgroud)

背景:

我有一个简单的组件:

@Component({
  selector: 'app-some-component',
  ....
})
export class SomeComponentComponent { ....
Run Code Online (Sandbox Code Playgroud)

现在在这个组件中,我想创建一个唯一标识符,其中应包含一些组件的名称。

例子:

'app-some-component_' + UuidUtil.generateUUID();
Run Code Online (Sandbox Code Playgroud)

显然,如果我这样做会更好:

SELECTOR + '_' + UuidUtil.generateUUID();
Run Code Online (Sandbox Code Playgroud)

但随后我必须将选择器声明为外部变量,但我遇到了问题,因为我的 IDE (Webstorm) 在 *.html 模板中向我提供了未知的选择器。

我怎样才能做到这一点。

@duplication 那里发布的解决方案非常hacky,因为需要将元素 ref 转换为小写。我希望两年后,有更好的方法。也许也是由于打字稿的进一步发展。