Javascript Deleterecord未从HasMany数组中删除对象

Javascript Deleterecord未从HasMany数组中删除对象,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我有一个与骑手模型相关的事件模型。事件模型有一个名为riders的属性,它是一个包含许多riders的属性,并且也是异步的。骑手模型有一个名为event的属性,它是一个belongTo,它包含它所属的适当事件。我正在从自己的REST API加载所有数据,该API通过Node.js和Express 4运行 这是我的删除代码: import Ember from 'ember'; export default Ember.Controller.extend({ actions: {

我有一个与骑手模型相关的事件模型。事件模型有一个名为riders的属性,它是一个包含许多riders的属性,并且也是异步的。骑手模型有一个名为event的属性,它是一个belongTo,它包含它所属的适当事件。我正在从自己的REST API加载所有数据,该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();
            });
        }
    }
});
models/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'
    })
});
models/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')
});

我很难理解你到底想删除什么

但我的做法是。有一个模型实例数组和一个ToDeleteModelInstance数组。第一个数组使用每个方法显示在模板上。在删除每个实例的过程中,使用ToDeleteModelInstanceArray.pushObjectselectedInstance删除每个实例

看起来像这样

删除

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);
      }  

您是否已确认model.save已成功完成,并且evt.save正在执行?是的,my node.js服务器接收到骑手的删除请求以及事件的PUT请求;但是,活动的riders属性仍然包含我刚刚删除的车手id。