從 Bug 修復中分離覆蓋
在 ExtJS 中,你可以覆蓋幾乎任何框架方法並將其替換為你自己的方法。這允許你修改現有類而無需直接修改 ExtJS 原始碼。
有時,你可能希望增強現有類或在類上提供合理的預設屬性。
例如,你可能希望所有模型資料欄位都允許空值。
Ext.define('MyApp.override.DataField', {
override: 'Ext.data.field.Field',
allowNull: true
});
在其他情況下,你需要修復框架中已破壞的內容。
以下是使用文件修復錯誤的示例。請注意,classname 包含 fix
而不是 override
。實際名稱並不重要,但分離是。
Ext.define('MyApp.fix.FieldBase', {
override: 'Ext.form.field.Base',
/**
* Add a description of what this fix does.
* Be sure to add URLs to important reference information!
*
* You can also include some of your own tags to help identify
* when the problem started and what Sencha bug ticket it relates to.
*
* @extversion 5.1.1
* @extbug EXTJS-15302
*/
publishValue: function () {
this.publishState('value', this.getValue());
}
});
現在,當需要升級到 ExtJS 的下一個版本時,你只需要檢查一個位置即可檢視哪些錯誤修復可以刪除。