クロム拡張機能をビルドしていて、バグが発生しました。この問題は、クロムの保存でnull
になる単一のオブジェクトプロパティです。chrome.storage.sync.setの後にObjectプロパティがnullになる
私が行うことで、これをテストしている:
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]);
});
});
をこれが出力されます。JSON.parse(JSON.stringify(obj))
の代わりobj
を保存
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
}
}
は、直接この問題を解決するようです。誰でもこれを引き起こす可能性のあるアイデアはありますか?どんな助けもありがとう!
編集:obj
の深いコピーを作成しても修正されません。
Edit2:settings.soundClip
がどのように設定されているかを拡張する必要があります。私はAngular(1.x)を使用していますが、私はカスタムselectディレクティブを使用しています。 JSONを呼び出すので
<my-select selected="settings.soundClip.selected"
options="settings.soundClip.options">
</my-select >
感謝を参照してください!残念ながら、 'storage_key'の代わりに' 'test" 'を使うと同じ結果が得られます。 – Easypeasy
右、storage_keyを使って値を取得しているので、私はそれが動作すると仮定します。私はsettings.soundClip.selected(または同様の辞書構文)にどのような値を入れているかを見ていきますが、これは問題を抱えている唯一の部分だからです。混乱を招いて申し訳ありません。 – eholder0
これは興味深いかもしれませんが、私は元の質問に追加情報を追加しました! – Easypeasy