169 похожих чатов

Import { AnalyticsService, AppModule } from "./app.module"; export function PageTrack( pageName

: string ): ClassDecorator {

return function ( constructor : any ) {
const analyticsService = AppModule.injector.get(AnalyticsService);

const ngOnInit = constructor.prototype.ngOnInit;

constructor.prototype.ngOnInit = function ( ...args ) {
analyticsService.visit(pageName);
ngOnInit && ngOnInit.apply(this, args);
}

const ngOnDestroy = constructor.prototype.ngOnDestroy;

constructor.prototype.ngOnDestroy = function ( ...args ) {
analyticsService.leave(pageName);
ngOnDestroy && ngOnDestroy.apply(this, args);
}

}
}
ребят, нашел вот такой вот код, но он не рабочий, у AppModule нет метода injector
кто-нибудь знает, есть способы раелизовать подобный функционал ?

1 ответов

11 просмотров

Декораторы должны быть чистыми, а значит ничего об Injector знать не должны. Сделать можно, но это все костыли. @Injectable({ providedIn: ‘root’ }) class InjectorProvider { static injector: Injector; constructor(injector: Injector) { InjectorProvider.injector = injector; } } export function PageTrack(pageName: string): ClassDecorator { return function (constructor: any) { const injector = InjectorProvider.injector; // … } }

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
7
Карта сайта