Создайте shared service
и импортируйте в app module
, используйте его во всех компонентах,
import { Injectable } from '@angular/core';
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
import { MyWrapper } from '../models/models';
@Injectable()
export class SharedService{
data:any={};
setData(key,value) {
this.data[key]=value;
}
clearData() {
this.data={};
}
getData(key) {
return this.data[key];
}
}
Примечание. Это не будет работать точно так же, как локальное хранилище, вы потеряете данные после закрытия браузера или обновления страницы в виде хранилища сеансов, но вы все равно можете размещать и получать данные между компонентами.
Чтобы установить данные,
sharedService.setData("mydata","mydata");
Чтобы получить данные,
sharedService.getData("mydata");
Если вы хотите, чтобы данные были постоянными, то альтернативными способами вы можете сохранить данные на сервере и получить данные в ngOnInit
или использовать какое-либо шифрование (jsencrypt
или cryptojs
) при хранении данных в локальном хранилище, так что пользователь не сможет изменить его. Тем не менее это не будет пуленепробиваемым решением. Если вы храните некоторые конфиденциальные данные, я бы порекомендовал вам хранить их на сервере.