2014-01-13 39 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); 

一种无赖。也找不到删除余烬数据记录的好方法。

相关问题