简体   繁体   English

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

[英]Deleterecord is not deleting object from the HasMany array

I have an event model which has a relationship to a rider model. 我有一个事件模型,它与骑手模型有关系。 The event model has a property called riders that is a hasMany of riders and it is also async. 事件模型具有一个称为riders的属性,该属性具有hasmany许多骑手,并且也是异步的。 The rider model has a property called event that is a belongTo and it contains the proper event that it belongs to. 骑手模型具有一个名为event的属性,该属性是一个belongingTo,它包含它所属的适当事件。 I am loading all of my data from my own REST API that is ran via Node.js and Express 4. 我正在从自己的REST API(通过Node.js和Express 4运行)加载所有数据。

Here is my deletion code: 这是我的删除代码:

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 模型/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 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')
});

Im having problems to understand what are u exactly trying to delete. 我在了解要确切删除的内容时遇到问题。

But the way i approach this is. 但是我的方式是。 There's an array of Model instances and there's an array of toDeleteModelInstances. 有一个Model实例数组,有一个toDeleteModelInstances数组。 The first array is shown on template using each method. 使用每种方法在模板上显示第一个数组。 And during the delete of each instance you use toDeleteModelInstancesArray.pushObject(selectedInstance) 在删除每个实例的过程中,您可以使用toDeleteModelInstancesArray.pushObject(selectedInstance)

Looks something like this. 看起来像这样。

Delete 删除

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]
}

Now on EDIT action 现在进行编辑操作

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM