Je configure un stockage local pour les paramètres de paramètres et que vous souhaitez définir et obtenir chaque valeur de ce formulaire dans le stockage local de mon application. Qu'est-ce que je dois ajouter à faire définir et obtenir correctement pour ce formulaire? Tout le monde peut voir que les résultats obtenus ont une erreur et MABE L'ensemble n'est pas terminé correctement. Comment faire tout ce travail Dois-je changer de jeu et obtenir des méthodes? Y at-il d'autre chose que je manque? J'ai essayé tout ce que je sais, mais je suis débutant dans le stockage local et ionique.
mon fichier TS: p>
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0/angular.min.js"></script>
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { FormBuilder, FormGroup, Validators, NgForm, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';
import { ToastController } from 'ionic-angular';
import { EspaceAgentPage } from '../espace-agent/espace-agent';
import { EspaceCitoyenPage } from '../espace-citoyen/espace-citoyen';
import { ChangePasswordPage } from '../change-password/change-password';
import { Storage } from '@ionic/storage';
import { PasswordService } from '../services/password.service';
import { NgModule } from '@angular/core';
@Component({
selector: 'page-settings',
templateUrl: 'settings.html',
})
export class SettingsPage {
private Form : FormGroup;
public mail: any;
public tel: any;
public data: any;
constructor(public navCtrl: NavController, public navParams: NavParams, public toastCtrl: ToastController, private formBuilder: FormBuilder, public storage: Storage)
{
this.Form = formBuilder.group({
mailadress: ['', Validators.compose([Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$'),Validators.email])],
telephone: ['', Validators.compose([ Validators.pattern('[0-9]*'), Validators.minLength(8), Validators.maxLength(8)])],
});
}
ionViewDidLoad() {
console.log('ionViewDidLoad SettingsPage');
this.getValue("stoker");
}
// set a key/value
setValue(key: string, value: any)
{
this.storage.set(key, value).then((response) => {
console.log('set' + key + ' ', response);
}).catch((error) => {
console.log('set error for ' + key + ' ', error);
});
}
// get a key/value pair
getValue(key: string) {
this.storage.get(key).then((val) => {
console.log('get ' + key + ' ', val);
this.data[key] = "";
this.data[key] = val;
}).catch((error) => {
console.log('get error for ' + key + '', error);
});
}
onChangepassword()
{
this.navCtrl.push(ChangePasswordPage);
}
onSubmit(form: NgForm)
{
this.mail=this.Form.get('mailadress').value;
this.tel=this.Form.get('telephone').value;
console.log(form.value);
this.setValue("stoker",this.mail);
this.setValue("stoker",this.tel);
this.navCtrl.push(EspaceCitoyenPage);
const toast = this.toastCtrl.create({
message: 'Modifications Enregistrées !',
duration: 4000
});
toast.present();
}
}3 Réponses :
Il semble que vous obtenez l'erreur dans cette fonction de la fonction lorsque vous essayez d'obtenir la clé STOKER renvoie une référence NULL, puis l'erreur. Peut-être qu'il n'y a pas d'élément stocké pour cette touche ou le Palform n'était pas prêt lorsque vous appelez le stockage. P> Lorsque vous travaillez sur le stockage, vous devez attendre de la plate-forme pour être prêt à être prêt: P> et pense mieux utiliser le stockage natif que le stockage ionique. P> J'espère que cela vous aidera. p> p>
plsease référez-vous Ceci
this.nativeStorage.setItem('myitem', {property: 'value', anotherProperty: 'anotherValue'})
.then(
() => console.log('Stored item!'),
error => console.error('Error storing item', error)
);
this.nativeStorage.getItem('myitem')
.then(
data => console.log(data),
error => console.error(error)
);
Windows.localstorage.setitem('key', value)
Vous pourriez signifier localStorage code>
Veuillez sélectionner une réponse utile pour résoudre le problème et Accepter la réponse en cliquant sur la coche grise à côté d'elle .