我在 Ionic 2 移动应用程序中有一个 Angular 2 NgModule
,定义如下:
@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' });
}
}
但是,我在运行时收到以下错误:
类型"类型VatRatesDbService"不可分配给类型 "工厂供应商"。类型"类型"中缺少属性"提供" 增值税数据库服务'。
发生这种情况是因为离子4的最新更新。
你必须像这样导入它(添加'/ngx'(
import { PluginName} from '@ionic-native/pluginName/ngx';
或者,您可以降级插件的版本
另一个插件发生在我身上。
更多信息在这里
解决方案是从构造函数中删除私有修饰符。您根本无法通过私人结构器提供可注射服务。
public constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
或:
constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
它在离子4中对我有用
你必须像这样导入它(添加'/ngx'(
从"@ionic-native/pluginName/ngx"导入 { PluginName}
源链接
我在最新的 Ionic 4 CLI 版本 4.9.0 中遇到此问题
当我在最新的CLI中创建旧版本的Ionic 3应用程序并安装本机插件应用程序版本时,我遇到了此错误
[ts]类型"AppVersionOriginal"不可分配给类型"提供程序"。 类型"AppVersionOriginal"缺少类型"工厂提供程序"中的以下属性:提供,使用工厂 [2322]
为此,我们需要安装旧版本的本机插件