我構建了一個包含多個選項卡的簡單頁面。每個標籤都會加載Firebase中的文章供稿(收集/列表)並在頁面上呈現卡片。一切正常,直到我試圖堅持訪問的飼料indexeddb
與app-indexeddb-mirror
。使用Polymerfire的app-indexeddb-mirror
這裏就是我所做的:
<dom-module id="my-view1">
<template>
<style include="shared-styles">
</style>
<paper-tabs id="tabs"
attr-for-selected="value"
selected="{{selectedFeed}}"
scrollable>
<template is="dom-repeat"
items="[[feeds]]"
as="feed">
<paper-tab value="[[feed.key]]">[[feed.name]]</paper-tab>
</template>
</paper-tabs>
<firebase-query id="[[selectedFeed]]_feed"
app-name="myfirebaseapp"
path="/myfirebaseappdb/feed/[[selectedFeed]]"
data="{{articles}}">
</firebase-query>
<app-indexeddb-mirror
key="[[selectedFeed]]"
data="[[articles]]"
persisted-data="{{persistedArticles}}">
</app-indexeddb-mirror>
<template is="dom-repeat"
items="[[persistedArticles]]"
as="article">
<paper-card image="[[article.image]]" alt="image">
<div class="card-content">
<h1 class="card-text">[[article.title]]</h1>
<h4 class="card-text">[[article.abstract]]</h4>
</div>
</paper-card>
</template>
</template>
<script>
Polymer({
is: 'my-view1',
ready: function() {
this.feeds = [
{name: "Feed1", key: "feed1"},
{name: "Feed2", key: "feed2"},
{name: "Feed3", key: "feed3"},
{name: "Feed4", key: "feed4"}
];
}
});
</script>
我想要做的是緩存中的每個進到indexeddb
作爲一款入門(飼料名作爲關鍵字和數據值),使他們能夠當應用程序離線時加載。這基本上就是app-indexeddb-mirror
,對吧?
但是,我不能在firebase-query
和app-indexeddb-mirror
之間的數據流頭,我不斷得到indexeddb
條目覆蓋/切換標籤時切換。
有什麼我不是在做對嗎?謝謝。
當來自firebase-query的數據發生變化時,app-indexeddb-mirror會緩存數據。這意味着當切換標籤頁時,數據將會改變,因爲firebase-query中的'path'發生了變化,這將導致'app-indexeddb-mirror'元素重新緩存數據。 –
我吸引了一些觀察員打印日誌,它確實看起來像你說的@BenThomas。我仍然無法弄清楚如何以正確的方式做到這一點?你能否介紹一下這方面的情況?謝謝。 – Xiang
一旦selectedFeed改變了,是不是也會立即更改app-indexeddb-mirror的鍵值(數據綁定是同步的)?在這種情況下,具有前一個鍵的緩存不應該被清除/清空嗎? – Xiang