我是Ext JS的初学者,我想将我的Java表单发送到具有已定义模型的ext js商店: 这是我的Java表单:
public class Form {
private member1;
private member2;
private List<AnotherType> membersList;
//getters and setters
}
这是我的商店:
Ext.define('MyApp.store.Mystore', {
extend : 'Ext.data.Store',
model : 'MyApp.model.MyModel',
proxy : {
type: 'rest',
url : '/myapp/url/for/findForm',
reader: {
type: 'json'
rootProperty : 'form'
},
writer: {
type: 'json'
}
}
}
如何为包含成员列表定义MyModel?
加载商店后如何使用此列表? (这是加载combox的列表)
谢谢!
答案 0 :(得分:2)
你的模特看起来像这样。我使用了与您在问题中使用的命名模式类似的命名模式。
Ext.define("MyApp.model.Form", {
extend: "Ext.data.Model",
fields: [
{name: "member1", type: "string"},
{name: "member2", type: "string"},
],
hasMany: {
model: "MyApp.model.AnotherType",
name: "membersList",
associationKey: "membersList"
}
});
Ext.define("MyApp.model.AnotherType", {
extend: "Ext.data.Model",
fields: [
{name: "value", type: "string"},
{name: "label", type: "string"},
]
});
你可以像这样创建一个组合框。
Ext.create("Ext.form.ComboBox", {
fieldLabel: "Members",
store: Ext.getStore("MyApp.store.Mystore").getAt(0).membersList(),
queryMode: "local",
displayField: "label",
valueField: "value",
renderTo: Ext.getBody()
});
请注意,以上只是使用商店中第一个MyApp.model.Form
的示例。您可能希望以更通用的方式创建组合框,但我不确定您的具体情况。