2017-02-09 3 views
4

Ich habe eine Angular 2 NgModule in einer ionischen 2 mobile app definiert wie folgt:typeof XService ist nicht dem Typ 'FactoryProvider' zuweisbar. Property 'liefern' fehlt

@NgModule({ 
    declarations: [ 
    MyApp, 
    HomePage, 
    ], 
    imports: [ 
    IonicModule.forRoot(MyApp) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
    HomePage, 
    ], 
    providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, VatRatesDbService] 
}) 
export class AppModule {} 

und den Service definiert auf diese Weise:

import { Injectable } from '@angular/core'; 
import * as PouchDB from 'pouchdb'; 

@Injectable() 
export class VatRatesDbService { 

    private _db; 

    private constructor() { 
    this._db = new PouchDB('rates.db', { adapter: 'websql' }); 
    } 
} 

aber ich bin den folgenden Fehler zur Laufzeit erhalten - Type 'typeof VatRatesDbService' ist nicht dem Typ 'FactoryProvider' zuweisbar. Im Typ 'typeof VatRatesDbService' fehlt die Eigenschaft 'bereitstellen'.

Antwort

6

Die Lösung besteht darin, den privaten Modifikator aus dem Konstruktor zu entfernen. Sie können einfach keinen injizierbaren Service mit einem privaten Konstruktor haben.

public constructor() { 
    this._db = new PouchDB('rates.db', { adapter: 'websql' }); 
} 

oder:

constructor() { 
    this._db = new PouchDB('rates.db', { adapter: 'websql' }); 
} 
Verwandte Themen