2015-02-23 43 views
1

我有這樣的記錄,我創建的模型只存在於本地(不在api中)。 的模型是如下:刪除模型僅存在於本地的記錄Ember

TM.Vdpmodel=DS.Model.extend({ 
type:DS.attr(), 
description:DS.attr(), 
vds:DS.attr(),  
}); 

我使用該模型來創建的對象(vdps)在JSON陣列。見下文。

{"vdps":[{"type":"ssdfdfg","description":"fhfgh","vds":[{"type":"fghgh","example":"jghhgj"},{"type":"gjghj","example":"ghjghj"},{"type":"ghjghj","example":"ghjghj"}]}],"asset_usage":[]} 

我創建它們使用

TM.obj.vdp.pushObject(this.store.createRecord('vdpmodel',{ 
      type:this.get("vdp11"), 
      description:this.get("vdp12"), 
      vds:TM.vdobj.vd.objectsAt([this.get("vdcount"),this.get("vdcount")+1,this.get("vdcount")+2]) 
})); 

此記錄僅保存在本地。現在我想從該商店中刪除一個記錄,該記錄的類型值爲「abc」。我該怎麼做呢?請記住,該記錄目前僅存在於本地。

我已經試過如下:

var records=this.store.filter('vdpmodel',function(data){ 
    return data.get('type')==="abc"; 
}); 
records.forEach(function(record){ 
    record.deleteRecord(); 
});   

但永遠不會填充記錄。任何想法我在這裏做錯了嗎?

回答

0

我設法通過在store.all

var records = this.store.all('vdpmodel'); 
var filteredRecords=records.filterBy("type","abc"); 
filteredRecords.forEach(function(data){ 
    data.deleteRecord(); 
}); 
+0

結果的filterby來解決這個我想你應該REMOVEOBJECT因爲該記錄僅局部存在,並不需要與後端同步。 deleteRecord將導致調用服務器來提交更改,因爲它是本地的,所以不需要調用。 – kushdilip 2015-02-23 13:22:03

+0

你應該使用unloadRecord,就像你在前面的問題中提到的那樣:http://stackoverflow.com/questions/28648200/delete-records-from-local-store-only-in-ember – Kingpin2k 2015-02-23 14:56:56

+0

我已經用uloadRecord &deleteRecord,兩者似乎都在做同樣的事情。 – pseudoanime 2015-02-23 15:21:52