我目前使用 setValues()
使用多个对象来填充 extjs 表单的各个部分。例如:
someForm.getForm().setValues({prop1: foo});
有没有办法可以命名表单的元素 object1.prop1
、object2.prop2
等。这样我就可以执行单个 someForm.getForm().setValues({object1: object1, object2: object2, ...})
?即嵌入的对象将被解析出来。
此外,有没有办法在POST
之前拦截上传以映射(object1.prop1
,object1.prop2
,...
) --> object1: {prop1: *, prop2: *, ...}
?
这比必须执行诸如映射 object1.prop1
--> object1_prop1
-> object1.prop1
< 之类的操作要容易得多/p>
感谢您提供的任何帮助
最佳答案
是的,您可以这样做,但方式与您指定的方式不同。 会有两种情况:
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 创建一条记录,如下所示,并将记录分配给表单:
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/