离子液体中的储存注入问题

Jos*_*ema 6 ionic-framework ionic3

我在用户服务中注入存储服务时收到错误.我拿了一个项目模板,我自己也看不到错误.

文件:app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platfoenter code hererm-browser';
import { IonicStorageModule, Storage } from '@ionic/storage';
import { IonicApp, IonicModule } from 'ionic-angular';
import { HTTP } from '@ionic-native/http';
import { Settings } from '../providers/providers';
import { User } from '../providers/providers';
import { Api } from '../providers/providers';
import { MyApp } from './app.component';

export function provideSettings(storage: Storage) {
  return new Settings(storage, {
    option1: true,
    option2: 'Ionitron J. Framework',
    option3: '3',
    option4: 'Hello'
  });
}

@NgModule({
  declarations: [
    MyApp
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    IonicModule.forRoot(MyApp),
    IonicStorageModule.forRoot()
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp
  ],
  providers: [
    Api,
    HTTP,
    User,
    { provide: Settings, useFactory: provideSettings, deps: [Storage]}
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

文件:user.ts

import { Injectable } from '@angular/core';
import { Api } from '../api/api';
import { Storage } from '@ionic/storage';
import { HTTP } from '@ionic-native/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class User {
  username: string;
  customerId: string;

  constructor(public api: Api, public http: HTTP, private storage: Storage) { }

  /**
   * Use Basic authentication and send a request to our endpoint to get an id
   */
  login(username: string, password: string){
    return new Observable<void>(observer => {
      this.api.me().then(
      (data) => {
        this.storage.set('CustomerId', data['customerId']);
        observer.next();
      },
      error => {
        console.error('ERROR', error);
        observer.error(error);
      });

    });

  }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

错误:未捕获(在承诺中):错误:StaticInjectorError [存储]:StaticInjectorError [存储]:NullInjectorError:没有存储提供程序!错误:StaticInjectorError [存储]:StaticInjectorError [存储]:NullInjectorError:没有存储提供程序!在_NullInjector.get(http:// localhost:8100/build/vendor.js:1276:19)at resolveToken(http:// localhost:8100/build/vendor.js:1564:24)

dis*_*nte 1

您需要在您的@NgModule

import { Storage } from '@ionic/storage';


@NgModule({
  ...
  providers: [
   ...
    Storage,
    ...
})
Run Code Online (Sandbox Code Playgroud)