'dan sonra null olur. Bir krom uzantısı yapıyorum ve bir hatayla karşılaştım başımı saramam. Sorun, kromların depolanmasında null
haline gelen tek bir nesne özelliğidir.Nesne özelliği, chrome.storage.sync.set
Ben yaparak bu test ediyorum:
console.log("pre-storage", settings);
var obj = {};
obj[storage_key] = settings;
chrome.storage.sync.set(obj, function() {
chrome.storage.sync.get(storage_key, function(data) {
console.log("post-storage", data[storage_key]);
});
});
Bu çıkış ise:
pre-storage, Object {
...
soundClip: Object {
options: Array[5],
selected: Object {
label: "Soft2",
value: "snd/soft2.wav"
}
}
}
post-storage, Object {
...
soundClip: Object {
options: Array[5],
selected: null
}
}
JSON.parse(JSON.stringify(obj))
yerine obj
depolanması doğrudan Bunu düzeltmek gibi görünüyor. Buna neden olabilecek herhangi bir fikri olan var mı? Herhangi bir yardım takdir edilir!
Düzenleme: obj
'un bir kopyasını çıkarmak onu düzeltmez.
Düzenleme 2: settings.soundClip
'un nasıl ayarlandığına bakmalıyım. Angular (1.x) kullanıyorum ve özel bir seçim yönergesi kullanıyorum. soyunmuş yönerge şuna benzer:
function mySelect() {
return {
restrict: "E",
templateUrl: "mySelect.html",
scope: {
options: "=",
selected: "="
},
link: function (scope) {
scope.select = function (item) {
scope.selected = item;
};
}
}
}
Yönergesi şablon görünümü (mySelect.html
):
<div>
<div ng-repeat="item in options track by $index"
ng-click="select(item)">
</div>
</div>
özellikleri sonra böyle bağlanmış iki yönlü şunlardır:
<my-select selected="settings.soundClip.selected"
options="settings.soundClip.options">
</my-select >
Teşekkür sınırlara göz atın! Ne yazık ki, 'storage_key' yerine' 'test '' kullanmak aynı sonuçları verir. – Easypeasy
Doğru, ve storage_key kullanarak değeri çıkardığınızdan beri, bunun çalıştığını düşünüyorum. Ne olursa olsun, setting.soundClip.selected (veya benzer bir sözlük sözdizimi) içine nasıl bir değer koyduğuna bakarsak, çünkü bu problemin tek kısmı, sadece açık olmaktır. Herhangi bir karışıklık için özür dilerim. – eholder0
Evet, ilginizi çekebilir, orijinal soruya ek bilgiler ekledim! – Easypeasy