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)
您需要在您的@NgModule
import { Storage } from '@ionic/storage';
@NgModule({
...
providers: [
...
Storage,
...
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
634 次 |
| 最近记录: |