Ошибка NullInjectorError: StaticInjectorError(AppModule)[AppComponent -> GoogleTagManagerService]: Angular 8

#angular #angular8 #google-tag-manager

#угловой #angular8 #менеджер тегов Google

Вопрос:

я также импортировал HttpClientModule, а также правильно настроил GoogleTagManagerService.

 import { HttpClientModule, /* other http imports */ } from "@angular/common/http";

@NgModule({
  imports: [
   HttpClientModule,
  ]}),
  providers: [
    { provide: 'googleTagManagerId', useValue: 'GTM-XXXXXXX' }
  ],
});
  

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

код app.component.ts

 import { GoogleTagManagerService } from 'angular-google-tag-manager';

constructor(
  private gtmService: GoogleTagManagerService
) {}

ngOnInit(): void {
  this.router.events.subscribe((evt) => {
    if (evt instanceof NavigationEnd) {
      const gtmTag = {
        event: 'page',
        pageName: evt.url
      };
      this.gtmService.pushTag(gtmTag);
    }
    if (!(evt instanceof NavigationEnd)) {
      return;
    }
  });
}
  

Комментарии:

1. Пожалуйста, покажите нам соответствующий код.

2. Можете ли вы показать нам больше кода / ошибок, которые вы получаете?

3. ОШИБКА NullInjectorError: StaticInjectorError(AppModule)[AppComponent -> GoogleTagManagerService]: Ошибка StaticInjectorError (Платформа: ядро)[AppComponent -> GoogleTagManagerService]: Ошибка NullInjectorError: нет поставщика для GoogleTagManagerService! в NullInjector.get ( localhost:4201/vendor.js:53072:27 ) в resolveToken ( localhost:4201/vendor.js:53399:24 ) в tryResolveToken ( localhost:4201/vendor.js:53325:16 ) в StaticInjector.get ( localhost:4201/vendor.js :53188:20 ) в resolveToken ( localhost:4201/vendor.js:53399:24 )

Ответ №1:

Как вы можете видеть в решенной проблеме из этого пакета, вы должны использовать более старую версию этого пакета для angular 8 (https://github.com/mzuccaroli/angular-google-tag-manager/issues/38 )

npm i --save angular-google-tag-manager@1.1.4

Ответ №2:

Кажется, все в порядке. Вы можете перезапустить свое приложение с ng run помощью .

Я советую вам следовать инструкциям в этом блоге:

https://itnext.io/how-to-add-google-tag-manager-to-an-angular-application-fc68624386e2

Или вы можете перепроверить свое приложение с демонстрационной страницей.

https://github.com/mzuccaroli/angular-google-tag-manager/tree/master/demo-application

И последнее, но не менее важное: вы можете переустановить пакет.

https://www.npmjs.com/package/angular-google-tag-manager