我目前使用setValues()使用多个对象来填充extjs表单的各个部分。例如:

someForm.getForm().setValues({prop1: foo});


有没有一种方法可以命名表单object1.prop1object2.prop2等的元素。这样我就可以做一个someForm.getForm().setValues({object1: object1, object2: object2, ...})吗?即将解析出嵌入的对象。

另外,是否有一种方法可以在POST映射(object1.prop1object1.prop2...)-> object1: {prop1: *, prop2: *, ...}之前拦截上传?

这将比要做诸如object1.prop1-> object1_prop1-> object1.prop1

感谢您的任何帮助,您可以提供

最佳答案

是的,您可以这样做,但是方式与您所指定的方式不同。
将有两种情况:

1)您有一个表格(假设修改),并且您向服务器请求获取数据。
您可以做的是创建一个为表单字段分配名称的模型。并使用服务器中的值分配模型以形成表格。见下文

// define StudentModel with fields firstName, lastName, address, and so on....
// form with fields, please have field attribute 'name' with values defined in model
// e.g. {xtype : 'textfield', name: 'firstName'}, {xtype : 'textfield', name: 'lastName'}, and so on
var form = this.getForm();
form.reader = Ext.create('Ext.data.reader.Json',{ // Use XML reader if you are using XML response.
    success: '@success',
    model: 'StudentModel'
});

form.load({ // load method will load data automatically from server to form fields
    url: '/getStudentData',
    params:{
        studentId: 24
    }
});


2)其他情况是您有本地可用的数据(假设在数组或变量中),并且想要将该数据分配为表格,
使用如下所示的StudentModel创建一条记录,并将记录分配给form:

var record = Ext.create('StudentModel', {
    firstName: 'Nandkumar',
    lastName: 'Tekale',
    address: 'RH 26, some street, city'
});

form.loadRecord(record); // You are done, all values to form are assigned.

关于javascript - extjs-表单中的嵌入式对象/名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18646585/

10-12 00:57