2014-01-13 160 views
2

我正在從WebSocket接收數據時重新加載數據的控制器上工作。我已經完成了重新加載數據的工作。我不知道爲什麼這不起作用,但是當我調用self.get('contact')時出現錯誤。下面。 '對象沒有方法重新加載'。我很確定我調用這個不正確,但我不知道如何從商店重新加載數據。有人可以幫我嗎?重新加載餘燼數據模型

CallMonitor.ContactsRoute = Ember.Route.extend({ 
model: function(){ 
    return this.store.find('contact'); 
}, 
setupController: function(controller, contacts) { 
    var socket = io.connect('http://localhost:3000'); 
    controller.set('socket', socket); 
    controller.set('contact', contacts); 
} 
}); 

CallMonitor.ContactsController = Ember.ArrayController.extend({ 
socketDidChange: function(){ 
    var socket = this.get('socket'), 
     self = this; 
    if(socket) 
    { 
     socket.on('call', function (data) { 
      var contactToUpdate = self.contact.filter(function(item) { 
       return item.id == data.contactId; 
      }); 
      if(contactToUpdate.length) 
      { 
       contactToUpdate.reload(); 
      } 
      else 
      { 
       // reload all the contacts 
       self.get('contact').reload(); 
      } 
     }); 
    } 
}.observes('socket') 
}); 

回答

1

我結束了剛剛從商店再次獲取,然後再次設置控制器的聯繫人屬性。找不到一個簡單的方法來爲多個記錄重新加載。對於單個記錄,只需要執行「重新加載()」,但對於新記錄很容易,這顯然不是那麼容易。

var contactPromise = self.contact.store.find('contact'); 
contactPromise.then(function(data){ 
    self.set('contact', data); 
}, undefined); 

一種無賴。也找不到刪除餘燼數據記錄的好方法。

相關問題