Angular2:EXCEPTION:没有Angulartics2GoogleAnalytics的提供者

时间:2017-01-29 07:53:26

标签: javascript angular angulartics angulartics2

我正在尝试将angulartics2用于我的应用程序。

我已正确配置,如文档中所述。

注意:没有提及将提供程序添加为依赖项的地方..

当我尝试运行该应用程序时,它会显示如下错误。

  

例外:没有Angulartics2GoogleAnalytics的提供商!错误:DI   错误       at 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.ngfactory.js:15)       在CompiledTemplate.proxyViewClass.AppView.createHostView(core.umd.js:12421)       在CompiledTemplate.proxyViewClass.DebugAppView.createHostView(core.umd.js:12829)       在ComponentFactory.create(core.umd.js:7766)1https://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 个答案:

答案 0 :(得分:3)

使用providers在组件中启动提供程序。

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

试试这个。

答案 1 :(得分:2)

您的问题应该存在于构造函数中:

constructor(angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics) {}

您应该在提供商面前添加public

constructor(public angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics) {}