0
votes

Enregistrer des données dans la sessionStorage comme non défini en angulaire

Je sauve les données d'adresse dans la sessionStorage, mais cela indique non défini où d'autres données permettent d'économiser de l'amende et que je suis capable de rétrécir les données également.can suggérant quel est le problème ici xxx xxx

im l'appelant dans l'autre module xxx

tout va bien, à l'exception de l'adresse indiquée non définie dans le stockage de session


1 commentaires

Il est préférable de stocker des chaînes, je veux dire si vous stockez un objet, puis strifiez-le avant de vous installer dans le stockage de la session.


3 Réponses :


0
votes

Par exemple stockage Web que .GetTitem () code> retourne null code> pour une clé inconnue.

Remarque Toutefois que .GetTitem () code> et .Settitem () code> sont spécifiquement définis dans l'IDL comme étant le téléviseur (code> getter code> et ou pour l'interface code> stockage code> strong>, et ils sont donc également pris en charge les moyens d'accéder à la Contenu du stockage. p>

Cependant, la syntaxe [] code> est plus proche d'un objet normal et / ou d'une propriété de tableau getter code>, et comme ces retours non défini code> pour un nom de propriété inconnu. p>

La raison pour laquelle ne pas utiliser [] code> Syntaxe est qu'il fonctionnera d'abord sur les propriétés de l'objet et vous permettra d'abord. Pour écraser de véritables propriétés et méthodes du localStorage code> objet code> fort>, cf: p>

pour par exemple: p>

import { Injectable } from '@angular/core';
import * as CryptoJS from 'crypto-js';

@Injectable({
  providedIn: 'root'
})
export class LocalStorageService {

  constructor() {}
  createLocalStorage(key: string, value: any){
  console.log('value => '+value);
    var cryptoData : any = CryptoJS.AES.encrypt(value, 'encoded data');
    sessionStorage.setItem(key,cryptoData);
  }

  getLocalStorage(key){
    var encodeData = sessionStorage.getItem(key);
    if (encodeData) {
      var decodeData = CryptoJS.AES.decrypt(encodeData, 'encoded data').toString(CryptoJS.enc.Utf8);
      return decodeData;
    } else {
      return null;
    }
  }
}


10 commentaires

@ Kiran Mistry Désolé je n'ai pas capable de saisir ce que vous avez dit. Vous vous demandez de supprimer la [] syntaxe de settitem, si je ne deviens pas indéfini


Vous utilisez this.helper.cryptValue pour chiffrer la valeur de localStorage


et parce que vous accédez à un objet c'est pourquoi vous ne recevez pas la clé d'adresse


@ Kiren Mistry Helper est un service où je possède la méthode de chiffrementValue


ya je sais que l'assistant est votre service et dans ce service chiffrementvalue est votre méthode


Partagez votre code de service d'assistance pour le cryptage et le décryptage


Modifier votre question Ne partagez pas sur le commentaire Plz ... Supprimer le commentaire


J'ai édité ma question et partagé le service d'assistance aussi


Consultez ma réponse dans la dernière place localStorage Settitem Notant pour revenir si vous revenez alors, cela vous donnera non défini


@ajay check mon édition de réponse fait un service d'assistance comme en réponse



0
votes

Si l'adresse code> code> est un objet JSON, vous devez alors le stocker comme chaîne: xxx pré>

pour le récupérer: p>

const address = {"Line1":"ABC, Satara", "Pin":"415013"};

const addressStringToStore = JSON.stringify(address);
console.log(addressStringToStore.Line1);
// its undefined

const originalObject = JSON.parse(addressStringToStore);
console.log(originalObject.Line1);
// expected output: ABC, Satara


0 commentaires

0
votes

J'ai la solution, où je n'ai pas correctement lié les données à stocker dans le stockage de la session.


0 commentaires