目前正在处理需要从内容克隆元素的应用程序的一部分,然后修改克隆元素并保存回模型。我在保存克隆元素时遇到问题,并且必须用克隆元素替换旧项目。我目前正在做的是更改旧项目的所有属性(如果有效):
Blocks.replace = function(item1, item2) {
for(var k in item2) {
Ember.set(item1, k, item2[k]);
}
};
var selectedEmployment = this.get("controllers.employmentDataEntry").get("selectedEmployment");
var modelItem = content.findBy("@id", selectedEmployment["@id"]);
Blocks.replace(modelItem, selectedEmployment);
我正在尝试使用ArrayController replaceContent方法,但在尝试运行以下代码时出现“无效数组长度”错误:
var employmentIndex = content.indexOf(modelItem);
this.replaceContent(employmentIndex, 0, selectedEmployment);
我做错了吗?有更好的方法来更换物品吗? 注意:我使用JSON作为模型。调用replaceContent时使用的ArrayController包含一个长度为2的数组。
答案 0 :(得分:1)
修复:需要将数组发送到replaceContent方法。因此,将selectedEmployment更改为[SelectedEmployment]。此外,将0更改为1,否则,内容将最终同时包含元素和克隆元素。
this.replaceContent(employmentIndex, 1, [selectedEmployment]);