Tengo una tabla de datos que muestra datos de una API externa, quiero que la cantidad de elementos/elementos en la página de la tabla se guarde en el almacenamiento local
Esto es lo que he intentado hasta ahora:
ngOnInit() { this.moviesService.getPopularTVShows().subscribe(res => { this.dataSource = new MatTableDataSource(res.results); this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; localStorage.setItem(this.dataSource, this.dataSource.length); console.log(localStorage.length); }); } Cuando ejecuto mi aplicación, la consola muestra undefined
¿Qué está mal con mi código? cualquier ayuda o sugerencia es bienvenida, novato probando cosas nuevas.
Debe definir un nombre de clave al almacenar datos en el almacenamiento local, que debe ser una cadena y el valor debe ser una cadena
localStorage.setItem('dataSource', this.dataSource.length);y para imprimir, debe usar getItem
console.log(localStorage.getItem('dataSource'));Primero debe comprender cómo funciona localStorage . está haciendo una forma incorrecta de establecer/obtener valores en el almacenamiento local. Lea esto para obtener más información: Cómo usar el almacenamiento local con JavaScript
puede usar localStorage para almacenar los datos json:
el ejemplo se da a continuación: -
let JSONDatas = [ {"id": "Open"}, {"id": "OpenNew", "label": "Open New"}, {"id": "ZoomIn", "label": "Zoom In"}, {"id": "ZoomOut", "label": "Zoom Out"}, {"id": "Find", "label": "Find..."}, {"id": "FindAgain", "label": "Find Again"}, {"id": "Copy"}, {"id": "CopyAgain", "label": "Copy Again"}, {"id": "CopySVG", "label": "Copy SVG"}, {"id": "ViewSVG", "label": "View SVG"} ] localStorage.setItem("datas", JSON.stringify(JSONDatas)); let data = JSON.parse(localStorage.getItem("datas")); console.log(data);Esta pregunta ya ha sido respondida aquí con gran detalle. Echale un vistazo.
Pero si te sientes perezoso, aquí tienes un adelanto.
// General syntax for storing data localStorage.setItem('key', 'value'); // Also note that both the key & the value has to be strings. // So we stringify the value(if it's an object) before setting it. // So, if you have an object as a value that you want to save, stringify it like this let data = { 'token': 'token', 'name': 'name' }; localStorage.setItem('myLSkey', JSON.stringify(data)); // OR for individual key-value pairs localStorage.setItem('myLSkey', JSON.stringify({ 'token': 'token', 'name': 'name' })); // To retrieve the data & save it to an existing variable data = JSON.parse(localStorage.getItem('myLSkey')); // To remove a value/item from localStorage localStorage.removeItem("myLSkey");