Angulartics2有多个提供商?

时间:2018-10-11 01:26:03

标签: angular typescript angulartics2

将Angulartics2用于Google Analytics(分析)和Piwik(matomo)。如果我仅使用一个提供程序,则它们的效果很好,但在尝试同时使用两者时却存在语法问题。在app.module.ts ....

import {Angulartics2Module, Angulartics2GoogleAnalytics, Angulartics2Piwik} from 'angulartics2';

...以及稍后在模块中使用:

@NgModule({
imports: [
    BrowserModule,
    AppRoutingModule,
    LayoutModule,
    StaticModule,
    Angulartics2Module.forRoot([ Angulartics2GoogleAnalytics, Angulartics2Piwik ]),
    MetaModule.forRoot(metaConfig)
],
declarations: [
    App
],
bootstrap: [ App ],
providers: [ ENV_PROVIDERS, APP_PROVIDERS ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
....

在app.routes.ts中,主要代码如下:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { NoContent } from './no-content';
import { Angulartics2GoogleAnalytics } from 'angulartics2';
import { Angulartics2Piwik } from "angulartics2";

import { DataResolver } from './app.resolver';

export const ROUTES: Routes = [
{ path: '', loadChildren: () => System.import('./home/home.module').then(mod => mod.HomeModule), pathMatch: 'full' },
{ ...other paths... },
{ path: '**', component: NoContent }
];

@NgModule({
imports: [RouterModule.forRoot(ROUTES)],
exports: [RouterModule]
})

export class AppRoutingModule
{
//  constructor(angulartics2GoogleAnalytics:       Angulartics2GoogleAnalytics) {}
constructor(angulartics2Piwik: Angulartics2Piwik) {}
}

如果取消注释导出类AppRoutingModule中的两个构造函数,则会得到“不允许多个构造函数”的信息。

我想确保同时使用这两个提供程序,但似乎无法弄清楚如何在导出中同时使用这两个提供程序。

谢谢。

1 个答案:

答案 0 :(得分:0)

从app.routing.module.ts中删除不必要的构造函数,

constructor(angulartics2Piwik: Angulartics2Piwik) { //remove this
}