extjs - 如何覆盖 EXTJS 中的模型并添加额外的字段?
问题描述
如何在 EXTJS 中覆盖模型?例如,如果我有一个模型定义为:
Ext.define('Mypp.model.Class1', {
extend: 'Ext.data.Model',
fields: [{
name: 'field1',
type: 'string'
}],
getField1: function() {
return this.data.field1;
},
setField1: function(field1) {
this.set('field1', field1);
},
});
我怎样才能覆盖它并添加额外的字段```field3`
例如,如何覆盖以下类并添加额外的字段?
Ext.define('Ext.calendar.model.Event', {
extend: 'Ext.data.Model',
mixins: ['Ext.calendar.model.EventBase'],
fields: [{
name: 'title',
type: 'string'
}, {
name: 'color',
type: 'string'
}],
getColor: function() {
return this.data.color;
},
getTitle: function() {
return this.data.title;
},
setColor: function(color) {
this.set('color', color);
},
setTitle: function(title) {
this.set('title', title);
}
});
我试过了
解决方案
我不明白你为什么需要这个,但无论如何:
Ext.define('Mypp.model.Class1', {
extend: 'Ext.data.Model',
fields: [{
name: 'field1',
type: 'string'
}],
getField1: function() {
return this.data.field1;
},
setField1: function(value) {
this.set('field1', value);
},
});
Ext.define('overrides.model.Class1', {
override: 'Mypp.model.Class1',
fields: [{
name: 'field1',
type: 'string'
}, {
name: 'field2',
type: 'string'
}],
getField2: function() {
return this.get('field2');
},
setField2: function(value) {
this.set('field2', value);
}
});
model = new Mypp.model.Class1();
model.setField1('Field1Value');
model.setField2('Field2Value');
console.log(
model.getField1(),
model.getField2()
);
推荐阅读
- javascript - Highcharts 动态数据更新失败
- c# - 实体框架核心和延迟加载问题
- html - 允许 html 文件在 iframe django 中显示
- python - 从列表中迭代熊猫数据框
- python - 打印嵌套字典循环 YYYYMMDD
- apache-spark - Py4JError:调用 o52.fit 时出错
- php - dns_get_record 它失败了,我能够控制错误
- r - 如何保存2次多项式线性模型的系数并稍后在R中进行预测?
- ruby-on-rails - 修复 TypeError:没有将 Arel::Nodes::SqlLiteral 隐式转换为 Integer
- excel-formula - 我可以在 Excel 中使用符合 countif 范围的动态标准吗?