javascript - extjs - 表单中嵌入的对象/名称

标签 javascript forms extjs extjs4

我目前使用 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< 之类的操作要容易得多/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/

相关文章:

javascript - Bootstrap Accordion 菜单

html - 为什么 "required"HTML 属性不起作用?

javascript - AngularJS 仅在提交后验证 ng-invalid 类

forms - 在同一应用程序中,以另一种独立的形式更改控件的状态

extjs 面板适合布局

javascript - 具有自动高度的表单面板内的复合字段

javascript - xmldoc.selectNodes() 无法正常工作

javascript - 如何将结果输出到控制台或页面上

c# - 如何在 window.open 方法中将 C# 属性作为参数发送到 url 末尾

javascript - 具有过滤子项的 TreePanel 节点