2014-12-13 3 views
1

Я пытаюсь обновить модель arraycontroller после удаления записи с помощью jquery ajax. Я могу добавить новый объект, используя self.pushObject (data), но я не могу удалить объект, используя self.removeObject (данные). кто-то может помочь. («Данные» является объектом, который я удалил, сервер отправляет его обратно после его удаления в сервере.)Ember.js как удалить объект из контроллера массива без данных ember

 removeTodo: function(id) { 
     var page_id = id; 
     self = this; 
     Ember.$.ajax({ 
      url: url+id, 

      type: "DELETE" 
     }).then(function(data) { 
      self.removeObject(data); 
     }); 
    } 
+0

Как выглядит 'data'? – givanse

+0

givanse, похоже, что объект json отличается от «данных». Я следил за тем, что упоминалось ниже, и это сработало – Kallan

ответ

0

data может иметь то же свойство, но это не объект, который существует в вашем массиве. См. Здесь, оба этих объекта выглядят совершенно одинаково, но они разные объекты и, как таковые, не равны.

{ foo : 7 } != { foo : 7 } 

При удалении из коллекции, если вы передаете объект, подлежащий удалению, этот объект должен существовать в коллекции.

Вы бы хотели сначала найти объект, а затем удалить его из коллекции.

.then(function(data) { 
    var obj = self.findBy('id', id); // assuming the object has a property 'id' 
    self.removeObject(obj); 
}); 
+0

. Спасибо, kingpin2k, похоже, что это работает до сих пор – Kallan

Смежные вопросы