javascript - Ember 使用 em 方法删除对象

标签 javascript ember.js ember-data

海伊再次删除操作以照顾。

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

<强>[ 类(class) , 类(class) , 类(class) , 对象>

__ember1393425759417_meta: Meta

formId: 4

proto: Object

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

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 function Object() { [native code] } has no method 'inverseFor'

另一方面,我也无法拼接它们,因为这不会影响 hbs...

最佳答案

您在创建记录时似乎遇到了问题,所以我会尝试解释一下。首先,在最新版本的 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 会将该有效负载加载到您刚刚创建的记录中,填充主键字段。

关于javascript - Ember 使用 em 方法删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045173/

相关文章:

javascript - Object.values 在 IE 浏览器中抛出 TypeError - 如何填充它?

json - 将 JSON 转换为适合 RESTAdapter EmberJS 的格式

javascript - 在 EmberJs : Route#setupController vs Controller#init 中初始化 Controller 状态

javascript - 数值变了,有人知道怎么回事吗?

ember.js - EmberData 设置值可防止模型保存后将来自动加载数据

javascript - Ember 反序列化破坏 URL 为 null

javascript - Highcharts - 嵌套切片圆环图

javascript - 在用数据填充 json 文件之前等待所有图像加载的正确方法

javascript - 如何检查 $compile 是否已经完成?

javascript - 使用 Babel.js 将 ES6 箭头函数编译为 Es5