私はSencha Touchでモバイルアプリを開発しており、重複することなく以前の検索の詳細をローカルに保存する必要があります。Sencha Touchストアのユニークな値
検索、保存、表示は正常に機能しますが、同じ検索を2回実行すると、そのエントリが自分の店舗に複製されます。
私は店の "id"がこれをすると思ったが、何かが間違っていると思った。
ここに店舗のコードを示します。
Ext.regModel('sSaved', {
fields: [
{name: 'IDs', type: 'int'},
{name: 'Outward', type: 'string'},
{name: 'Return', type: 'string'},
{name: 'Pickup', type: 'string'},
{name: 'Destination', type: 'string'}
],
proxy: {
type: 'localstorage',
id:'IDs'
}
});
var savedJobs = new Ext.DataView({
store: new Ext.data.Store({
model: 'sSaved',
storeId: 'allSaved'
}),
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<table class="item" style="margin:auto;">',
'<tr><td class="title">ID</td><td>{IDs}</td></tr>',
'<tr><td class="title">Outward</td><td>{Outward}</td></tr>',
'<tr><td class="title">Return</td><td>{Return}</td></tr>',
'<tr><td class="title">Pickup</td><td>{Pickup}</td></tr>',
'<tr><td class="title">Destination</td><td>{Destination}</td></tr>',
'</table>',
'</tpl>'
),
itemSelector: "table.item",
autoHeight:true,
emptyText: 'No Saved Jobs',
autoLoad: true
});
ストアを設定するコード。
var fetched = Ext.decode(result.responseText);
var details = fetched.apiResponse.details;
savedJobs.store.load();
savedJobs.store.add({
"IDs":details.ID,
"Outward":details.Outward,
"Return":details.Return,
"Pickup":details.Pickup,
"Destination":details.Destination
});
savedJobs.store.sync();
これを回避するには、何らかの方法で店舗を検索し、追加する前に値が存在するかどうかをチェックすることができますが、より簡単な方法があると確信しています。
この検索 - >チェック - >追加が必要なアプローチの場合、リソースを最も集中させない方法は何ですか?