有没有办法有一个表单提交ExtJS的4下创建一个保存的对象?
我觉得奇怪,我说,网格各地专卖店机制完全建立,我看不出有什么明显的方式堵塞形式走进一家商店。 但我最有可能只是失去了一些东西。
有没有办法有一个表单提交ExtJS的4下创建一个保存的对象?
我觉得奇怪,我说,网格各地专卖店机制完全建立,我看不出有什么明显的方式堵塞形式走进一家商店。 但我最有可能只是失去了一些东西。
您可以在表格模型实例添加到商店提交使用此代码:
onSaveClick: function()
{
var iForm = this.getFormPanel().getForm(),
iValues = iForm.getValues(),
iStore = this.getTasksStore();
iStore.add( iValues );
},
这是一个MVC控制器内,所以this
是控制器。
对于模型编辑,你可以“绑定”形式使用一个模型实例loadRecord
:
iFormPanel.loadRecord( this.selection );
然后,您可以使用更新模型实例updateRecord()
iFormPanel.getForm().updateRecord();
只是为了好玩(和它可能会帮助一些),它类似于下面的代码:
onSaveClick: function()
{
var iForm = this.getFormPanel().getForm(),
iRecord = iForm.getRecord(),
iValues = iForm.getValues();
iRecord.set ( iValues );
},
如果你的小店是具有autoSync: true
。 一个更新(或创建)调用将通过配置的代理进行。 如果没有自动同步,你必须手动同步您的商店。
你也可以继承Ext.form.action.Action提供负载/保存动作的形式来存储上进行。 唯一的小问题,就是不知何故没有“正式”的方式来选择Ext.form.Basic任何非标准的行动,所以我建议一个非官方的覆盖:
Ext.define('Ext.form.Advanced', {
override: 'Ext.form.Basic',
submit: function(options) {
var me = this,
action;
options = options || {};
action = options.submitAction || me.submitAction;
if ( action ) {
return me.doAction(action, options);
}
else {
return me.callParent(arguments);
}
},
load: function(options) {
var me = this,
action;
options = options || {};
action = options.loadAction || me.loadAction;
if ( action ) {
return me.doAction(action, options);
}
else {
return me.callParent(arguments);
}
}
});
于是,已经创造了你的需要,你可以再表单面板中使用它们的操作:
Ext.define('My.form.Panel', {
extend: 'Ext.form.Panel',
requires: [ 'Ext.form.Advanced' ],
loadAction: 'My.load.Action',
submitAction: 'My.submit.Action',
...
});
还有其他的方法和快捷方式,虽然。