2016-09-19 2 views
3

В качестве Angular2 компонента, при выполнении:Преобразование angular2 компонент имя/«это» в строку

console.log (this); 

вы получите, как ожидается, весь объект со всеми членами, например,

"ComponentName {member1, member2, member_n}" 

Теперь я хочу только зарегистрировать имя компонента. Как достичь?

+0

что ComponentName? вы пробовали 'this.ComponentName'? – micronyks

+0

Здесь 'ComponentName' - это имя компонента, например. в Angular 2 мы делаем: 'export class MySuperCoolComponent {..}' – nottinhill

+0

приятный вопрос, но странный ... – micronyks

ответ

7

Действительно интересный вопрос, это то, что вы ищете:

console.log(this.constructor.name); 
+1

Отличный ответ, спасибо! Подтверждено Работа над всеми моими услугами и компонентами. – nottinhill

+1

@Stefan очень хороший ответ, – micronyks

+1

Это работает. Однако имейте в виду, что инструменты angular-cli/webpack и другие сокращающие имена инструменты JavaScript могут изменить имя вашего класса на одну букву. Таким образом, в режиме dev это будет «MyClass», но после минимизации только одна буква «a». Это может раздражать, если вам нужно посмотреть журналы производственных консолей или сломать свой код, если вы используете this.constructor.name для логики. – Arlo

Смежные вопросы