Ember使用em方法删除对象

时间:2014-02-26 14:59:50

标签: javascript ember.js ember-data

Hai再一次删除了要处理的行动。

我要删除给定项目的数组和参数

[ 类 , 类 , 类 , 对象>

  

__ ember1393425759417_meta:Meta

     

formId:4

     

proto :对象

如果类是数据库中的现有记录,我可以删除它们并且它可以工作(否则阻止)。 PS!参数是需要删除的完全相同的对象/类

deleteFieldset: function(formID){
      if(this.get('controller').get('isEditController')){
        //Checks if edit controller

        var allPersonArray = this.get('controller').content._data.persons;
        if(allPersonArray[formID.formId -1] !== undefined){
                                    //TODO:    Delete generated objects
        }else{
          formID.destroyRecord();  // Deleting records works.
        }
      }else{}

我试过removeAt,removeObject,但没有运气。

在数组中新生成的对象上使用removeAt输出。

  

TypeError:对象函数Object(){[native code]}没有方法   'inverseFor'

另一方面,我也不能把它们拼接起来,这不会影响hbs ......

1 个答案:

答案 0 :(得分:1)

看起来你在创建记录时遇到了麻烦,所以我会试着解释一下。首先,在最新版本的Ember-Data中,商店应该为您创建新的记录。例如:

var record = this.get('store').createRecord({
    prop1: 'value1',
    prop2: 'value2' 
});

record.set('belongsToRelationship', otherRecord);
record.set('hasManyRelationship', new Em.Set());

records.save();

这将为您创建一个正确的记录,当您在该记录上调用.save()时,适配器会将其保留在服务器上。

就主键而言,您无法在客户端创建它们。无论您认为现在通过增加最后一个主键可能会起作用,当您拥有多个客户端时,会工作。 (天啊,它现在可能都不会工作。)你的服务器应该创建主键。你创建一个记录,就像我上面做的那样。当您将其保存到服务器时,您的服务器应使用包含已保存记录的有效负载进行响应,包括主键。然后,Ember-Data将该有效负载加载到您刚创建的记录中,填充主键字段。