要如何自己覆寫?一方面是要自己定義一個dirtyFlag,同時也要覆寫onFormDirtyChange事件
最重要的是千萬別忘了要設定「trackResetOnLoad: true」
大致如下:
===============================
Ext.define('xxxPrj.view.xxxForm', {
extend: 'Ext.form.Panel',
....
isFormDirty: false,
trackResetOnLoad: true,
....
initComponent: function () {
...
...
...
,listeners: {
dirtychange: {
fn: me.onFormDirtyChange,
scope: me
}
}
...
...
},
...
...
,onFormDirtyChange: function (basicForm, dirty, options) {
//there should be a global function to check this flag before switching to other page
this.isFormDirty = true;
}
...
...
...
);
================================
如此一來,在外部呼叫這類別的getForm().loadRecord(...)或是getForm().setValues(....);
再設定 xxxpanel.isFormDirty =false;
再偵測 xxxpanel.isFormDirty是否被修改,這才是比較保險的方式(照理說應該自己overwrite loadRecord或是setValues,會更理想)
再設定 xxxpanel.isFormDirty =false;
再偵測 xxxpanel.isFormDirty是否被修改,這才是比較保險的方式(照理說應該自己overwrite loadRecord或是setValues,會更理想)
以上,切記
沒有留言:
張貼留言