Javascript Deleterecord未从HasMany数组中删除对象
我有一个与骑手模型相关的事件模型。事件模型有一个名为riders的属性,它是一个包含许多riders的属性,并且也是异步的。骑手模型有一个名为event的属性,它是一个belongTo,它包含它所属的适当事件。我正在从自己的REST API加载所有数据,该API通过Node.js和Express 4运行 这是我的删除代码: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: {
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。