我尝试在我的离子2应用程序中使用它:https://ionicframework.com/docs/v2/storage/
我已经运行
cordova plugin add cordova-sqlite-storage --save
和
npm install --save @ionic/storage
成功。
,当我尝试在我的app.module.ts中添加存储时,我有一个错误:
Error: Can't resolve all parameters for Storage: (?).
at v (http://localhost:8100/build/polyfills.js:3:4864)
at SyntaxError.BaseError [as constructor] (http://localhost:8100/build/main.js:127193:27)
at new SyntaxError (http://localhost:8100/build/main.js:11660:16)
at CompileMetadataResolver._getDependenciesMetadata (http://localhost:8100/build/main.js:27183:31)
at CompileMetadataResolver._getTypeMetadata (http://localhost:8100/build/main.js:27058:26)
at CompileMetadataResolver._getInjectableMetadata (http://localhost:8100/build/main.js:27046:21)
at CompileMetadataResolver.getProviderMetadata (http://localhost:8100/build/main.js:27288:40)
at http://localhost:8100/build/main.js:27246:49
at Array.forEach (native)
at CompileMetadataResolver._getProvidersMetadata (http://localhost:8100/build/main.js:27213:19)
at CompileMetadataResolver.getNgModuleMetadata (http://localhost:8100/build/main.js:26897:50)
at JitCompiler._loadModules (http://localhost:8100/build/main.js:72991:64)
at JitCompiler._compileModuleAndComponents (http://localhost:8100/build/main.js:72951:52)
at JitCompiler.compileModuleAsync (http://localhost:8100/build/main.js:72917:21)
at PlatformRef_._bootstrapModuleWithZone (http://localhost:8100/build/main.js:52753:25)
我不明白如何解决它。
我的app.module.ts:
import { Storage } from '@ionic/storage';
...
providers: [
{provide: ErrorHandler, useClass: IonicErrorHandler},
PData,
PBackground,
PTranslate,
Storage
]
...
由于离子2.2.0,建议使用 @ionic/storage版本2.0.0。自上一个版本以来,App.Modules.ts中的配置已更改。如果您没有以正确的方式更改所有内容,则会发生错误。
在app.modules.ts中进行以下更改:
- 从提供商中删除存储
-
更改导入语句:
来自:
import { Storage } from '@ionic/storage';
to:
import { IonicStorageModule } from '@ionic/storage';
-
将以下内容添加到导入数组:
IonicStorageModule.forRoot()
导入数组应如下所示:
imports: [
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
注意:不要在任何其他文件中更改存储的进口。
您的 app.module.ts 应该看起来像,
import { Storage } from '@ionic/storage';
export function provideStorage() {
return new Storage(['sqlite', 'websql', 'indexeddb'], { name: 'database_name' });
}
@NgModule({
declarations: [
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
],
providers: [
{ provide: Storage, useFactory: provideStorage }, Storage
]
})
您必须使用 set()和 get()方法来存储和检索数据中的数据。请查看具有示例视频的离子2存储教程博客。希望这有帮助