Deleterecord不会从HasMany数组中删除对象

时间:2014-08-15 03:49:14

标签: javascript ember.js ember-data

我有一个与骑手模型有关系的事件模型。事件模型有一个名为riders的属性,它有许多车手,也是异步的。 rider模型有一个名为event的属性,它是一个belongsTo,它包含它所属的正确事件。我正在从我自己的REST API加载我的所有数据,这些REST API通过Node.js和Express 4运行。

这是我的删除代码:

import Ember from 'ember';

export default Ember.Controller.extend({
    actions: {
        deleteRider: function () {
            var model = this.get('model');
            var evt = model.get('event');

            model.deleteRecord();
            model.save().then(function() {
                evt.save();
            });
        }
    }
});

模型/ event.js

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string'),
    city: DS.attr('string'),
    state: DS.attr('string'),
    date: DS.attr('string'),
    riders: DS.hasMany('rider', {
        async:true,
        inverse:'event'
    })
});

模型/ rider.js

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string'),
    city: DS.attr('string'),
    state: DS.attr('string'),
    BB: DS.attr('boolean'),
    SB: DS.attr('boolean'),
    BU: DS.attr('boolean'),
    event: DS.belongsTo('event')
});

1 个答案:

答案 0 :(得分:0)

我无法理解您究竟想要删除的内容。

但我接近这个的方式是。有一个Model实例数组,还有一个toDeleteModelInstances数组。使用每种方法在模板上显示第一个数组。在删除每个实例期间,您使用toDeleteModelInstancesArray.pushObject(selectedInstance)

看起来像这样。

删除

deleteFieldset: function(givenRecord){

     //remove from Each array then push to array containing deleted records
    this.get('controller.markedForDeleted.pushObject(givenRecord));
    // You now have a record in given array [class,class]
}

现在进行编辑行动

      var personsToDelete = self.markedForDeleted.map(function(item){ 
        return item.destroyRecord();
      });

      // Checks for deletedInstances array 
      if(Ember.isEmpty(personsToDelete)){
        deletePersonSuccess();
      } else {
        Ember.RSVP.all(personsToDelete).then(deletePersonSuccess, deletePersonFailure);
      }