2016-03-27 18 views
0

İki işlevim var: saveData() ve loadData(). saveData(), tüm nesnelerin içinden geçer ve (varsayılan olarak) ile bir dize kimliği ve değeri ayarlar ve daha sonra loadData() ile döndürülür. Şimdi, sözde söylüyorum çünkü işe yaramıyor. Uygulamanın yeniden başlatılmasının sonucu, son giriş kaydedilen yalnızca olur.chrome.fileSystem - birden fazla dosya girişini geri al/geri yükle?

//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); 
    }) 
    }) 
} 

Nasıl yardım edeceğini bilen var mı? Beni gerçekten rahatsız ediyor, boşuna başka bir yöntem denedim. Herhangi bir yardım büyük ölçüde takdir edilecektir :)

Soru net değil: Birden çok dosya girişini nasıl kaydedebilirim ve daha sonra chrome fileSystem API'sini kullanarak bunları tek tek geri yükleyebilirim?

cevap

0

.forEach(); Örneğin.; .forEach(function(_, enttry){}), burada entry, dizideki yinelenen öğenin index değeridir. .forEach() geri aranan ilk parametre, value. value kullanılmayacaksa, kullanımının ihmalini göstermek için alt çizgi kullanabilirsiniz. Daha sonra entry değişken isimlerini js geri kalanında .forEach() geri aramada kullanabilirsiniz.

+0

Tamam, ben düzenledim ve sonuç aynı kalıyor. Sorun kodun bir parçası değildi. Bunun bir endeksin kendisinden ziyade 'indeks' değeri ('1' veya '2' veya herhangi bir sayı) 'indeks' olarak okunması gerekir. _individually_ dizisindeki her nesne için giriş nesnesine bir sayı değeri ayarlamak ve daha sonra girdileri ayrı ayrı olarak almak ve sahip olduğum 'fileEntries 'dizisine eklemek için ona ihtiyacım var. Cevabınız için teşekkürler, kodumu biraz temizledim! – Devplex

+0

@Devplex 'entry 'nesnesinin dizinini' fileEntries' içinde veya 'entry' nesnesinin kendisinin bir özelliğinden mi almaya çalışıyorsunuz? – guest271314

+0

Bu XD'lerin hiçbiri çok açık olmasaydım özür dilerim. FileEntries'i tek tek ayarlamak ve bunları ayrı ayrı almak istiyorum. Bunu yaptıktan sonra 'fileEntries' dizisine ekleyin. 'StringID', her nesnenin saklanmasını istediğim şeydir ve 'entry 'nesnesi' chrome.fileSystem.retainEntry() 'işlevine iletildiğinde,' value 'sonuç kimliği olur. – Devplex

İlgili konular