Angular 2 NgModule
in a Ionic 2モバイルアプリは次のように定義されています:
@NgModule({
declarations: [
MyApp,
HomePage,
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
],
providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, VatRatesDbService]
})
export class AppModule {}
そしてサービスはこのように定義されました:
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' });
}
}
ただし、実行時に次のエラーが発生します。
タイプ「typeofVatRatesDbService」は、タイプ「FactoryProvider」に割り当てることができません。プロパティ「provide」がタイプ「typeofVatRatesDbService」にありません。
解決策は、コンストラクターからプライベート修飾子を削除することです。民間のコンストラクターで注射可能なサービスを提供することはできません。
public constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
または:
constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
これは、ionic ionic 4の最新の更新です。
このようにインポートする必要があります( '/ ngx'を追加)
import { PluginName} from '@ionic-native/pluginName/ngx';
または、プラグインのバージョンをダウングレードできます
それは別のプラグインで私に起こっていました。
最新のIonic 4CLIバージョン4.9.0でこの問題に直面しています
古いバージョンIonic 3アプリケーションを最新のCLIで作成し、ネイティブプラグインアプリバージョンをインストールしたときにこのエラーが発生しました
[ts]タイプ「AppVersionOriginal」はタイプ「プロバイダー」に割り当てることができません。タイプ「AppVersionOriginal」には、タイプ「FactoryProvider」から次のプロパティがありません:provide、useFactory [2322]
そのためには、古いバージョンのネイティブプラグインをインストールする必要があります