2017-09-05 7 views
0

私は、ストレージファイル内でシングルトンとして動作するAngularJSサービスを作成しようとしています。AngularJSサービスからSingleton to Storageファイル

:私はこのような何かを書くことをしようとしている setFilesForTabIdから

を保存したファイルを取得するための鍵getFilesForTabId

  • でファイルを書き込むため

    • :二つの方法があるはずです
      app.factory('fileStorage', ['LogService', function (LogService) { 
      
          var fileStorage = { 
           this.files = {}; 
      
           this.getFilesForTabId = function (key) { 
            return this.files[key]; 
           }; 
           this.setFilesForTabId = function (key, files) { 
            this.files[key] = files; 
            return true; 
           } 
          } 
          return fileStorage; 
      
      }]); 
      

      しかし、このコードは悪いです。私はそれを使用しようとしているときにエラーがあります。どうすればいい?私は助けに感謝します

      今私はgetFilesForTabId機能に問題があります。私は未定義のファイル[key]オブジェクトでこの関数を実行しようとしています。 私の実際のサービスコードがある:私はブラウザ専用のエラーを表示する下

      app.factory('fileStorage', ['LogService', function (LogService) { 
      
          var fileStorage = { 
      
           files: {}, 
           setFilesForTabId: function(key,files){ 
      
            this.files[key] = files; 
            return true; 
      
           }, 
           getFilesForTabId: function (key) { 
      
      
            if(typeof(files[key]) === undefined) { 
      
             return []; 
      
            } 
            else{ 
      
             return this.files[key]; 
            } 
           } 
          } 
          return fileStorage; 
      
      }]); 
      

      enter image description here

  • +1

    "エラーがあります...." *どのようなエラーが発生*してください[編集]エラーが発生している問題?。 – Claies

    答えて

    1

    あなたは{}オブジェクトに=を使用することはできません。

    var fileStorage = 
    { 
        files: {}, 
        getFilesForTabId: function (key) { 
         return this.files[key]; 
        }, 
        setFilesForTabId: function (key, files) { 
         this.files[key] = files; 
         return true; 
        } 
    }; 
    
    1

    fileStorageをオブジェクトとして初期化しようとしていますが、代わりに関数のように記述しています。 Object Initializer Syntaxを使用する必要があります。

    が、この代わりに試してみてください:

    app.factory('fileStorage', ['LogService', function(LogService) { 
    
        var fileStorage = { 
        files: {}, 
    
        getFilesForTabId: function(key) { 
         return this.files[key]; 
        }, 
    
        setFilesForTabId: function(key, files) { 
         this.files[key] = files; 
         return true; 
        }, 
        }; 
    
        return fileStorage; 
    
    }]); 
    
    +0

    ありがとうございます。私は自分の投稿を更新しました。今私は定義されていないファイル[キー]オブジェクトで関数getFilesForTabIdを実行することに問題があります。これを見ていただけますか?私はブラウザからのエラーで画面を表示しました。私は非常に感謝するだろう;) –

    関連する問題