我知道我无法使用javascript将数据保存到文件中,但有没有任何解决方案可以在本地文件系统上创建配置文件(JSON),我可以在其中编写数据,进行一些更改,如添加或删除对象并保存。当我下次启动我的应用程序时,我不想丢失我的新数据。有什么想法吗?
感谢您的帮助。
更新
我想在不同的计算机上使用它。
答案 0 :(得分:1)
您可以自己写一个SettingsService
来通过localstorage
读取和写入数据:
class SettingsEntry {
constructor(public key: string, public value: any) { }
}
export class SettingsService {
private SETTINGS_KEY = "__SETTINGS__";
private _settings: Array<SettingsEntry>;
constructor() {
let settings = localStorage.getItem(this.SETTINGS_KEY);
if (settings && settings != undefined) {
this._settings = JSON.parse(settings);
}
else {
this._settings = [];
this.save();
}
}
private indexOf(key: string): number {
for (let i = 0; i < this._settings.length; i++) {
if (this._settings[i].key == key) {
return i;
}
}
return -1;
}
private save() {
localStorage.setItem(this.SETTINGS_KEY, JSON.stringify(this._settings));
}
get(key: string) {
let index: number = this.indexOf(key);
if (index >= 0) {
return this._settings[index].value;
}
return null;
}
set(key: string, value: any) {
let index: number = this.indexOf(key);
if (index >= 0) {
this._settings[index].value = value;
}
else {
this._settings.push(new SettingsEntry(key, value));
}
this.save();
}
}
在您的组件或服务中使用它:
_settingsService.set("time", new Date());
let time = _settingsService.get("time");
使用Plunker作为示例用法