本地存储和ngrxstore

时间:2017-02-07 09:18:33

标签: javascript angular local-storage ngrx

我有一个angular2app。我将数据存储到localstorage中。每当动作获取chage本地存储数据时都会清除。如何将此本地存储数据存储到ngrxstore中。我有以下内容:

component.ts

onClickRoom(room: string): void {
this.date = new Date();
this.evntList = new events('', '', '');
this.evntList.timestamp = this.date;
this.evntList.name = room;
this.evntList.type = this.type;
console.log("eventList:", this.evntList);
this.eventArray.push(this.evntList);
this.tokenmanager.store(this.eventArray);
console.log('Room clicked: ', this.eventArray); ---> This event array successfully updating.
}

globalstorage.ts

@Injectable()
export class TokenManager {

public tokenKey: string = 'app_token';

constructor() { }

store(content) {

    localStorage.setItem(this.tokenKey, JSON.stringify(content));

}

retrieve() {
    let storedToken: any = localStorage.getItem(this.tokenKey);


    if (!storedToken) throw 'no token found';
    return storedToken;
}
}

我的观点是:

  • ABC
  • pqr ----->这是一个清单。
  • QWE

虽然我点击了abc 3,但事情会被存储到本地存储中,如:

[{name: "abc", timestamp:time, type: "typename"}].

然后在我clik之后,数组将更新到

[{name: "abc", timestamp:time, type: "typename"}, {name: "pqr", timestamp:time, type: "typename"}].

但刷新页面并单击同一项后,先前存储的数据将丢失,并使用新值更新数组。但实际上我需要的是一个新的附加数组。这意味着先前存储的数据和新存储的数据。我该如何实现呢?

如何将此本地存储数据存储到ngrx商店以获取所有回收。我是angular2和ngrx商店的新手。任何帮助高度赞赏。

1 个答案:

答案 0 :(得分:0)

我知道这已经是一个相当陈旧的问题了,但是偶然发现了这个问题,我正在研究类似的问题。

我正在使用ngrx-store-localstorage,如果您使用rehydrate选项,此模块会自动将ngrx-store与localstorage同步。

希望有助于任何人绊倒这个问题。