Angular2: ИСКЛЮЧЕНИЕ: нет поставщика для Angulartics2GoogleAnalytics

Я пытаюсь использовать angulartics2 с моим заявлением.

Я настроил правильно, как указано в документе.

Примечание. Нет места для добавления провайдера в качестве зависимости.

Когда я пытаюсь запустить приложение, оно показывает ошибку, как показано ниже.

ИСКЛЮЧЕНИЕ: нет поставщика для Angulartics2GoogleAnalytics! Ошибка: ошибка DI в NoProviderError.ZoneAwareError (zone.js:811) в NoProviderError.BaseError [как конструктор] (core.umd.js:1186) в NoProviderError.AbstractProviderError [как конструктор] (core.umd.js:1371 в) новая ошибка NoProviderError (core.umd.js:1411) в ReflectiveInjector_. throwOrNull (core.umd.js: 3394) в ReflectiveInjector. getByKeyDefault (core.umd.js: 3433) в ReflectiveInjector. getByKey (core.umd.js: 3380) в ReflectiveInjector.get (core.umd.js: 3140) в AppModuleInjector.NgModuleInjector.get (core.umd.js:8996) в CompiledTemplate.proxyViewClass.AppView.injectorGet (core.umd.js:12465) в CompiledTemplate.proxyViewClass.DebugAppView.injectorGet (core.umd.js:12845) в CompiledTemplate.proxyViewClass.View_AppComponent_Host0.createInternal (/AppModule/AppComponent/host.15factlate.Appice.xyText)..createHostView (core.umd.js:12421) в CompiledTemplate.proxyViewClass.DebugAppView.createHostView (core.umd.js:12829) в ComponentFactory.create (core.umd.js: 7766) 1: https://github.com/angulartics/angulartics2

App.component.ts

import { Component } from '@angular/core';
import { Angulartics2GoogleAnalytics } from 'angulartics2';
@Component({
  selector: 'my-app',
  moduleId: module.id,
  templateUrl: `./app.component.html`,
  styleUrls: ['/app.componenet.css']
})
export class AppComponent {
title = 'Angular2 google analytics';
constructor(angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics) {}
}

app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from './app.component';
import { HttpModule } from '@angular/http';
import { FormsModule }   from '@angular/forms';
import { Angulartics2Module, Angulartics2GoogleAnalytics } from 'angulartics2';
@NgModule({
  imports:      [ HttpModule, BrowserModule, FormsModule, Angulartics2Module.forRoot([ Angulartics2GoogleAnalytics ])],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ],
})
export class AppModule { }

2 ответа

Решение

Ваша проблема должна находиться в вашем конструкторе:

constructor(angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics) {}

Вы должны добавить, например, public перед вашим провайдером:

constructor(public angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics) {}

Использование providers инициировать ваших провайдеров в компоненте.

 @Component({
    selector: 'yourselector',
    styleUrls: [''],
    templateUrl: '',
    providers: [Angulartics2GoogleAnalytics]
})

Попробуй это.

Другие вопросы по тегам