存储离子 4
Storage Ionic 4
我是 Angular 世界的初学者,我很想在离子存储 4 中插入和检索信息,但是,当我尝试检索它时 returns 我是空数组.
我做了以下事情
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"
订阅方法正在用于 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);
});
});
我是 Angular 世界的初学者,我很想在离子存储 4 中插入和检索信息,但是,当我尝试检索它时 returns 我是空数组.
我做了以下事情
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"
订阅方法正在用于 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);
});
});