2017-02-15 5 views
0

私はChromeアプリケーションを構築していますが、オプションページにはVue.jsを使用しています。 クロームストレージから設定を読み込み、それをvueデータに入れたいと思います。chrome.storageのデータをvue.jsのデータに読み込みます

私の問題は、chrome storageコールバックからvue compontensにアクセスできないことです。私がコールバックの中で呼び出すたびに、すべてのvue要素は定義されていません。 クロムストレージcb関数に値を返す方法、または追加のコールバックを与える方法はありますか?

は、ここに私のコードES6とtranspiling(好ましいアプローチ)を使用して

name: 'app', 
    data: function() { 
     return { 
      data [] 
     } 
    }, 
    methods: { 
     init: function() { 
      chrome.storage.sync.get('series', function (storageData) { 
       this.data = storageData //this is not possible, because this.data is undefined 
       }) 
      }); 
     } 
    }, 
    created: function() { 
     this.init(); 
    } 
} 

答えて

2

た場合です。注:矢印関数は新しいコンテキストを作成しません。

init: function() { 
    chrome.storage.sync.get('series', storageData => { 
     this.data = storageData 
    }); 
} 

ES5回避策:

init: function() { 
    var self = this; 
    chrome.storage.sync.get('series', function (storageData) { 
     self.data = storageData 
    }); 
} 
+0

は完璧勤務。おかげで多く – Ruderer

+1

クール、解決としてマークしてください。 :) – sandrooco

関連する問題