Ссылка на экземпляр декорируемого класса, вызываемого в Angular - PullRequest
3 голосов
/ 11 марта 2019

У меня есть такой декорированный класс.

@BlingBling
@Component({ ... })
export class Classico implements OnInit {
  processId: string;
}

Декоратор реализован следующим образом.

export function BlingBling(ctor: Function) {
  console.log("Wheheee");
  console.log(ctor);
  console.log(this);
}

Я вижу, что могу увидеть конструктор (и, вероятно, вызовите его тоже), но мне не удалось получить доступ к экземпляру создаваемого класса.Я пытался это , но это undefined .Больше никаких идей, и поиск в Google не дал ничего, что я признал полезным.

Я хотел бы вставить значение в поле processId из декоратора (регистрация).Я могу представить, что это можно сделать из конструктора, но это похоже на создание зависимости, которую я не хочу создавать.

edit Я нашел этот блог гдеавтор предлагает следующий синтаксис для достижения этого, но я не уверен, что это правильный подход, так как он отказывается от синтаксиса, в котором конструктор передается в код декоратора.

function Console(message) {
  console.log(message);
  return function(target) {
    console.log('Our decorated class', target);
  };
}

@Console('Hey!')
class ExampleClass {
  constructor() {
    console.log('Yo!');
  }
}

Я также чувствую смущениеэто класс, который мы обрабатываем тогда или экземпляр класса.Мы переопределили оригинальный конструктор этим?

...