IonicStorageModule:它如何在设备/模拟器上不起作用但如何在Web上起作用

时间:2019-10-04 14:24:27

标签: ionic4 angular8 ionic-storage

在我的应用程序中,我使用IonicStorageModule(ionic4和angular8)在前端使用数据库。它可以在Web(chrome&Firefox)上运行,但是当我模拟时,它不起作用。我也在移动设备上尝试过,并且遇到了同样的问题...

我尝试使用本机存储,但是无法在Web上对其进行测试,并且它无法在设备或模拟器上运行。

在HTML代码中,我使用ngSubmit“ onAddLocation”进行调用,该调用调用locService.addLocation(data)。 在模拟器和设备中,我没有日志(我不知道如何拥有日志)。

//app.module.ts:

    imports: [BrowserModule, 
    IonicModule.forRoot(), 
    AppRoutingModule, 
    HttpClientModule,
    IonicStorageModule.forRoot({
        name:'MyLocations',
        driverOrder:['indexeddb','sqlite','websql']
      }),...

    //loc.service.ts:

    export class LocService {

    private locations:Array<Place>=[];

    public currentLocation:Place;

    constructor(private storage:Storage) {

    }

    public getLocations(){

        return this.storage.get("locations").then(data=>{

       this.locations=(data!=null?data:[]);

       return this.locations.slice();
    });
    }

    public addLocation(place:Place){
        this.locations.push(place);

        this.storage.set("locations",this.locations);

    }

    //location.page.ts:
    onAddLocation(data:Place) {
        this.geolocation.getCurrentPosition().then(resp=>{
            data.coordinates={
                longitude:resp.coords.longitude,
                latitude:resp.coords.latitude
            }

            this.locService.addLocation(data);

            this.navCtrl.back();

        },err=>{
            console.log('Error getting location', err);
        })

        }

0 个答案:

没有答案