Extjs:覆盖准备保存的记录中的对象

时间:2013-09-18 09:10:40

标签: object extjs edit record

大家好,任何人都可以了解如何做到这一点。

我有一个带有各种子对象的userRecord对象,包括他们的技能组合,合同等。

我通过查询商店中的userId来获取记录,如下所示。

  

var userRecord = userStore.findRecord('id',userId);

接下来,我在表格界面中有多种形式的复选框,与每个用户的子对象相关,例如技能和合同。我试图在userRecord上用已经检查过的复选框上的数组覆盖这些。

 var skillsetCheckBoxes = skillsetPanel.query('checkboxfield[checked=true]');
 var skillsets = new Array();
 Ext.each(skillsetCheckBoxes, function (skillset)
 {
     console.log(skillset);
     skillsets.push(skillset);
 }); 

我试图将userRecord的工程师的技能组对象设置为新数组:

   userRecord.set(('engineer').skillsets, skillsets);

但是当我在执行此操作后记录记录时,它仍然是我从findRecord()检索到的没有编辑字段的记录。

任何帮助非常感谢,

谢谢!

1 个答案:

答案 0 :(得分:0)

很难说不知道你的模型的结构,但你的线明显错了。您正在使用('engineer').skillsets作为set方法的关键参数。因为它不是字符串而是数组,所以它不会做任何好事。

你的界限应该是这样的:

// You should probably test that there is something in there, or the
// next line could crash...
var engineer = userRecord.get('engineer');
if (engineer) {
    userRecord.get('engineer').skillsets = skillsets;
}