2016-07-14 2 views
1

데이터를 자바 스크립트로 저장할 수 없다는 것을 알고 있지만 데이터를 쓸 수있는 로컬 파일 시스템에 구성 파일 (JSON)을 만드는 방법이 있습니까? 객체를 추가하거나 제거하고이를 저장하는 것과 같은 변경 사항이 있습니다. 다음에 내 앱을 시작할 때 새로운 데이터를 잃고 싶지 않습니다. 어떤 아이디어?구성 파일 만들기 - 변경 내용을 읽고 저장할 수있는 능력

도움 주셔서 감사합니다.

UPDATE 나는 다른 컴퓨터에 그것을 사용하려고합니다.

+0

config를 로컬 파일 시스템에 보관하고 싶습니다. – Verri

+0

mongodb를 사용하여 JSON에 저장할 수 있습니다 – Rikin

+1

[localStorage] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) 여기에서 필요한 항목이 있습니다. 또는 [FileSystem API] (http://www.html5rocks.com/en/tutorials/file/filesystem/)를보십시오. [무엇을 시도 했습니까?] (http://whathaveyoutried.com)? – ManoDestra

답변

1

당신은 읽고 localstorage을 통해 데이터를 쓸 자신에게 SettingsService를 작성할 수 : 귀하의 구성 요소 또는 서비스에서이처럼 사용

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 예 :

+0

답변 해 주셔서 감사합니다! 이 아이디어가 마음에 들면 100 % 개인 설정으로 사용 하겠지만 다른 컴퓨터에서 작업하고 싶을 때 전역 설정을 위해 다른 설정이 필요합니다. – Verri

관련 문제