海伊再次删除操作以照顾。
我的数组和参数以及要删除的给定项目
<强>[ 类(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/