Есть ли способ сохранить данные, созданные/отредактированные в локальном хранилище, используя формат json, где я должен написать локальное хранилище? в компоненте редактирования или в основном компоненте, где вызывается функция getAllNotes()
И в основном какая польза от этого локального хранилища и хранилища сессий?
файл .ts класс экспорта NotesListComponent реализует OnInit {
public subscribe:Subscription;
public notes:Notes[] = [];
public inputText:string = '';
constructor(private noteService:NotesService, private route:ActivatedRoute, private router:Router) { }
ngOnInit() {
this.subscribe = this.noteService.notesChangeInDOM.subscribe(
(data:Notes[])=>{
this.notes = data
}
)
this.notes = this.noteService.getAllNotes()
}
onAddNewNote(){
this.router.navigate(['newNote'],{relativeTo:this.route})
}
search(){
if(this.inputText != ''){
this.notes = this.notes.filter(res=>{
return (res.name.toLocaleLowerCase().match(this.inputText.toLocaleLowerCase()) )
})
}else if(this.inputText == ''){
this.ngOnInit()
}
}
}
service.ts
import { Injectable } from '@angular/core';
import { Notes } from '../models/noteModel';
import { Subject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class NotesService {
public notesChangeInDOM = new Subject<Notes[]>();
private notes: Notes[] = [
new Notes(
'This Notes is related to the thing Dummy Content',
new Date(2019,2,11,9,25,0),
new Date(2019,2,11,9,25,0)
),
new Notes(
'The time that sun rises and sets is the most beautiful scene',
new Date(2019,2,11,18,25,0),
new Date(2019,2,11,18,25,0)
),
new Notes(
'The documents has to be uploaded to the cliets before the deadline',
new Date(),
new Date()
),
new Notes(
'Meeting has to be scheduled by this week',
new Date(),
new Date()
),
];
constructor() { }
setNotes(note:Notes[]){
this.notes = note
}
getAllNotes(){
return this.notes.slice()
}
getNoteById(id:number){
return this.notes[id]
}
addNewNote(note:Notes){
this.notes.push(note)
return this.notesChangeInDOM.next(this.notes.slice())
}
editNote(id:number, note:Notes){
this.notes[id] = note
return this.notesChangeInDOM.next(this.notes.slice())
}
deleteNote(id:number){
this.notes.splice(id,1)
return this.notesChangeInDOM.next(this.notes.slice())
}
}