2016-07-06 10 views
1

私は、BreezeとzStorageを使ってデータを管理するAngularプロジェクトに取り組んでいます。データを更新しようとすると、古いデータを削除せずに新しいデータをストレージにプッシュします。Breeze zStorageは古いデータにデータを追加します

function getAll(forceRemote, page, size, nameFilter) { 
     var self = this; 
     // Only return a page worth of devices 
     var take = size || 20; 
     var skip = page ? (page - 1) * size : 0; 

     if (self.zStorage.areItemsLoaded(entityName) && !forceRemote) { 
      // Get the page of Peripherals from local cache 
      return self.$q.when(getByPage()); 
     } 

     // Load all devices to cache via remote query 
     return EntityQuery.from('Devices')    
      .orderBy(orderBy) 
      .toType(entityName) 
      .using(self.manager).execute() 
      .then(querySucceeded) 
      .catch(self._queryFailed); 


     function querySucceeded(data) {     
      self.zStorage.areItemsLoaded(entityName, true); 
      self.zStorage.save(); 
      self.log('Retrieved [Devices] from remote data source', data.results.length, true); 
      return getByPage(); 
     } 

     function getByPage() { 
      var predicate = null; 

      if (nameFilter) { 
       predicate = _devicePredicate(nameFilter); 
      } 

      var devices = EntityQuery.from(entityName) 
       .where(predicate) 
       .orderBy(orderBy) 
       .toType(entityName) 
       .take(take).skip(skip) 
       .using(self.manager) 
       .executeLocally(); 

      return devices; 
     } 
    } 

問題が自分の構成であるかzStorageであるかわかりません。

答えて

0

ブリーズコントローラで新しいGUIDを作成するのは間違いでしたが、ブリーズはクライアント側のエンティティ管理にとって非常に強力なツールになっています。

関連する問題