私は2つの機能:saveData()
とloadData()
を持っています。 saveData()
はすべてのオブジェクトを実行し、後でloadData()
と返されるchrome.storage.local.set
の文字列IDと値を(おそらく)設定します。さて、私はおそらくそれは動作しないため、言います。アプリを再起動したときの結果はの最後のエントリだけが保存されます。chrome.fileSystem - 複数のファイルエントリを保持/復元しますか?
//I have an array
//called 'fileEntries'
//which the user adds fileEntry objects to
//when they add a tab or open a file
var fileEntries = [];
function saveData(){
fileEntries.forEach(function(entry){
//the string id should just be the
//index of the entry object within the array
//so something like '1' or '2'
var stringID = fileEntries.indexOf(entry),
value = chrome.fileSystem.retainEntry(entry);
chrome.storage.local.set({ stringID : value });
});
}
function loadData(){
chrome.storage.local.get({stringID : null}, function(result){
chrome.fileSystem.restoreEntry(result.stringID, function(entry){
//adds the resulting entry into the array
fileEntries.push(entry);
})
})
}
どのように手助けをするのですか?それは本当に私を悩ませている、私は無駄に他の方法の束を試してみました。どのような助けが大いに感謝されるでしょう:)
質問が明確でない場合:複数のファイルエントリを保存し、chrome fileSystem APIを使用して個別に復元するにはどうすればよいですか?
私はそれを編集しました。結果は同じです。問題はコードの一部ではありませんでした。それは、数値そのものではなく、 'index'値( '1'、または '2'など何でも)が 'index'として読み込まれていることと関係しています。 _individually_配列内の各オブジェクトのエントリオブジェクトで数値を設定し、個々にエントリを取得し、それを私が持っている 'fileEntries'配列に追加する必要があります。答えをありがとう、私のコードを少しきれいに! – Devplex
@Devplex 'fileEntries'内の' entry'オブジェクトのインデックスまたは 'entry'オブジェクト自体のプロパティを取得しようとしていますか? – guest271314
私は非常に明確でない場合、それらのXDの申し訳ありません。私はfileEntriesを個別に設定し、それらを個別に取得したいと思います。完了したら 'fileEntries'配列に追加してください。 'stringID'はそれぞれのオブジェクトを保存するためのもので、' value'オブジェクトは 'entry'オブジェクトが' chrome.fileSystem.retainEntry() '関数に渡されるときの結果IDです。 – Devplex