我是Angular世界的初学者,我很想在离子存储器4中插入和检索信息,但是,当我尝试检索它时,它会返回我的空数组。
我做了以下
export class OcorrenciasPage implements OnInit {
public ocorrencia: CAD231SolitacaoOcorrencia[] = new Array();
public url = 'http://localhost:53834/api/';
constructor(private ocorrenciaService: CAD231SolicitacaoOcorrenciaService, private storage: Storage, private http: HttpClient) {
this.http.get(this.url + 'CAD231/').subscribe(response => {
for (let i = 0; i < Object.keys(response).length; i++) {
this.ocorrencia.push({
'idSolitacaoOcorrencia': response[i]['IdSolicitacaoOCorrencia'],
'idProvedor': response[i]['IdProvedor'],
'idStatusOcorrencia': response[i]['IdStatusOcorrencia'],
'idTipoSolitacaoOcorrencia': response[i]['IdTipoSolicitacaoOcorrencia'],
'dataCadastro': response[i]['DataCadastroSolicitacao'],
'descricaoSolicitacao': response[i]['DescricaoSolicitacao'],
'idUsuarioCadasro': response[i]['IdUsuarioCadastro'],
'idCliente': response[i]['IdCliente']
});
}
});
console.log(this.ocorrencia);
this.storage.set('ocorrencias',this.ocorrencia)
storage.get('ocorrencias').then((val) => {
console.log(val);
});
}
ngOnInit() {
}
}
“ocorrencia”属性正在填写正确,
但结果是空的,有人可以解释原因
在这里
here is the values of the "occurrence" property and the value returned by the "storage"
subscribe方法用于Observable。这意味着当对象发生变化时它会触发。对于此示例,您将从后端服务获取一些数据,并且您的程序将设置存储到localstorage而无需等待后端的回复。这就是我们使用Observable的原因。
要解决此问题,您必须在获得后端响应后设置存储,因此您必须在订阅中移动设置存储方法。 Here是Observables的文档
this.http.get(this.url + 'CAD231/').subscribe(response => {
for (let i = 0; i < Object.keys(response).length; i++) {
this.ocorrencia.push({
'idSolitacaoOcorrencia': response[i]['IdSolicitacaoOCorrencia'],
'idProvedor': response[i]['IdProvedor'],
'idStatusOcorrencia': response[i]['IdStatusOcorrencia'],
'idTipoSolitacaoOcorrencia': response[i]['IdTipoSolicitacaoOcorrencia'],
'dataCadastro': response[i]['DataCadastroSolicitacao'],
'descricaoSolicitacao': response[i]['DescricaoSolicitacao'],
'idUsuarioCadasro': response[i]['IdUsuarioCadastro'],
'idCliente': response[i]['IdCliente']
});
}
console.log(this.ocorrencia);
this.storage.set('ocorrencias',this.ocorrencia)
storage.get('ocorrencias').then((val) => {
console.log(val);
});
});