2017-04-06 46 views
3

我試圖爲Ionic 2配置Angular2-Jwt。在更新Ionic之前,下面的代碼工作。現在它不。我知道有改變離子存儲sRGB是造成問題,但我不明白我怎麼可以把下面的代碼:無法解析存儲的所有參數:(?) - Angular JWT App模塊

import { BrowserModule } from '@angular/platform-browser'; 
 
import { Http } from '@angular/http'; 
 
import { ErrorHandler, NgModule } from '@angular/core'; 
 
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'; 
 

 
import { AuthHttp, AuthConfig } from 'angular2-jwt'; 
 
import { ElasticModule } from 'angular2-elastic'; 
 

 
import { MyApp } from './app.component'; 
 
import { HomePage } from '../pages/home/home'; 
 
import { NumberBoard } from '../components/number-board/number-board'; 
 

 
import { StatusBar } from '@ionic-native/status-bar'; 
 
import { SplashScreen } from '@ionic-native/splash-screen'; 
 
import { CloudSettings, CloudModule } from '@ionic/cloud-angular'; 
 
import { IonicStorageModule, Storage } from '@ionic/storage'; 
 

 
let storage: Storage = new Storage(); 
 

 
export function getAuthHttp(http) { 
 
    return new AuthHttp(new AuthConfig({ 
 
    headerName: 'token', 
 
    noTokenScheme: true, 
 
    globalHeaders: [{'Accept': 'application/json'}], 
 
    tokenGetter: (() => storage.get('token')) 
 
    }), http); 
 
}; 
 

 
const cloudSettings: CloudSettings = { 
 
    'core': { 
 
    'app_id': 'c3890396' 
 
    } 
 
}; 
 

 
@NgModule({ 
 
    declarations: [ 
 
    MyApp, 
 
    HomePage, 
 
    NumberBoard 
 
    ], 
 
    imports: [ 
 
    BrowserModule, 
 
    IonicModule.forRoot(MyApp), 
 
    CloudModule.forRoot(cloudSettings), 
 
    IonicStorageModule.forRoot() 
 
    ], 
 
    bootstrap: [IonicApp], 
 
    entryComponents: [ 
 
    MyApp, 
 
    HomePage 
 
    ], 
 
    providers: [ 
 
    StatusBar, 
 
    SplashScreen, 
 
    {provide: ErrorHandler, useClass: IonicErrorHandler}, 
 
    {provide: AuthHttp, useFactory: getAuthHttp, deps: [Http]}, 
 
    ] 
 
}) 
 
export class AppModule {}

的package.json:

{ 
    "name": "ionic-hello-world", 
    "author": "Ionic Framework", 
    "homepage": "http://ionicframework.com/", 
    "private": true, 
    "scripts": { 
    "clean": "ionic-app-scripts clean", 
    "build": "ionic-app-scripts build", 
    "ionic:build": "ionic-app-scripts build", 
    "ionic:serve": "ionic-app-scripts serve" 
    }, 
    "dependencies": { 
    "@angular/common": "4.0.0", 
    "@angular/compiler": "4.0.0", 
    "@angular/compiler-cli": "4.0.0", 
    "@angular/core": "4.0.0", 
    "@angular/forms": "4.0.0", 
    "@angular/http": "4.0.0", 
    "@angular/platform-browser": "4.0.0", 
    "@angular/platform-browser-dynamic": "4.0.0", 
    "@ionic-native/core": "3.4.2", 
    "@ionic-native/crop": "^3.4.4", 
    "@ionic-native/image-picker": "^3.4.4", 
    "@ionic-native/splash-screen": "3.4.2", 
    "@ionic-native/status-bar": "3.4.2", 
    "@ionic/cloud-angular": "^0.11.0", 
    "@ionic/storage": "2.0.1", 
    "angular2-elastic": "^0.13.0", 
    "angular2-jwt": "^0.2.0", 
    "ionic-angular": "3.0.0", 
    "ionicons": "3.0.0", 
    "rxjs": "5.1.1", 
    "sw-toolbox": "3.4.0", 
    "zone.js": "^0.8.4" 
    }, 
    "devDependencies": { 
    "@ionic/app-scripts": "1.3.0", 
    "typescript": "~2.2.1" 
    }, 
    "cordovaPlugins": [ 
    "cordova-plugin-whitelist", 
    "cordova-plugin-console", 
    "cordova-plugin-statusbar", 
    "cordova-plugin-device", 
    "cordova-plugin-splashscreen", 
    "ionic-plugin-keyboard" 
    ], 
    "cordovaPlatforms": [], 
    "description": "Rediyal-Business: An Ionic project" 
} 
+0

你能證明你的'package.json'文件? – Sampath

+0

完成@Sampath :) –

+0

你在使用'Ionic 3 beta'嗎? – Sampath

回答

2

看起來像:

let storage: Storage = new Storage(); 

不起作用版本2.0.0起。 檢查ionic storage code。 它的構造函數需要一個參數。

constructor(config: StorageConfig) 

你應該能夠注入像一個提供商的構造,雖然使用它。

constructor(private storage: Storage) 

依賴注入集here

{ provide: Storage, useFactory: provideStorage, deps: [StorageConfigToken]}, 

也可以嘗試

let storage: Storage = new Storage(null); 
+1

null工作得很好!謝謝 –

相關問題