Boa noite, tudo bem?
Estou com um pequeno problema e acredito que seja na hora de instanciar um objeto Storage(). Segui todos os passos onde importamos o modulo Storage, atribuímos ao provider sua useFactory, refatorei a class de serviço e ainda assim não ha registro algum no application no modo de desenvolvedor. Não existe erro no console, então vou tomar a liberdade de expor meu código para que juntos resolvesse mos esse problema.
app.module
import { AgendamentoService } from './../domain/agendamento/agendamento-service';
import { CadastroPage } from './../pages/cadastro/cadastro';
import { HomePage } from '../pages/home/home';
import { EscolhaPage } from './../pages/escolha/escolha';
import { NgModule, ErrorHandler } from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { Storage } from '@ionic/storage';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
function provideStorage() {
return new Storage(['indexeddb'], {
name: 'aluracar',
storeName: 'agendamentos'
});
}
@NgModule({
declarations: [
MyApp,
HomePage,
EscolhaPage,
CadastroPage
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
EscolhaPage,
CadastroPage
],
providers: [
{ provide: ErrorHandler, useClass: IonicErrorHandler },
AgendamentoService,
{ provide: Storage, useFactory: provideStorage }
]
})
export class AppModule {}
agendamento-service
import { Storage } from '@ionic/storage';
import { Agendamento } from './agendamento';
import { Http } from '@angular/http';
import { Injectable } from "@angular/core";
@Injectable()
export class AgendamentoService {
constructor (private _http: Http, private _storage: Storage) {}
agenda(agendamento: Agendamento) {
let api =`https://aluracar.herokuapp.com/salvarpedido?carro=${agendamento.carro.nome}&preco=${agendamento.valor}&nome=${agendamento.nome}&endereco=${agendamento.endereco}&email=${agendamento.email}&dataAgendamento=${agendamento.data}`;
return this._http
.get(api)
.toPromise()
.then(() => agendamento.confirmado = true, err => console.log(err))
.then(() => {
let key = agendamento.email + agendamento.data.substr(0,10);
return this._storage.set(key, agendamento)
})
.then(() => agendamento.confirmado);
}
}
No inicio do curso eu fiz download do projeto em branco, desde então venho codando e alimentando esse mesmo projeto.
Abraço.