好的,所以我知道这个标题可能没有正确定义,但我基本上对使我在ExtJs 6中的一个javascript函数更短或更高效感兴趣,这里是我正在讨论的代码 此功能用于列表项目点击,使用itemTpl
onMylist2ItemTap: function(dataview, index, target, record, e, eOpts) {
var company_name = record.get('name');
var license_idval = record.get('license_id');
var start_date = record.get('start_date');
var expiry_date = record.get('expiry_date');
var product_name = record.get('product_name');
var mac = record.get('mac_address');
var server_url = record.get('server_url');
var end = record.get('end_date');
var duration = record.get('duration');
var feature = record.get('feature');
var invoice = record.get('invoice_number');
var view = Ext.getCmp('mainview');
view.setActiveItem(2);
Ext.getCmp('name').setValue(company_name);
Ext.getCmp('product_name').setValue(product_name);
Ext.getCmp('mac').setValue(mac);
Ext.getCmp('server').setValue(server_url);
Ext.getCmp('start').setValue(start_date);
Ext.getCmp('end').setValue(end);
Ext.getCmp('duration').setValue(duration);
Ext.getCmp('expiry').setValue(expiry_date);
Ext.getCmp('features').setValue(feature);
Ext.getCmp('license_id').setValue(license_idval);
Ext.getCmp('invoice').setValue(invoice);
},
它真的很长,有没有办法可以缩短它,使它更有效率 感谢
答案 0 :(得分:4)
这样的东西?
var FIELDS = {
"name": "name",
"start_date": "start",
// ...
};
然后
Object.keys(FIELDS).forEach(function(key) {
Ext.getCmp(FIELDS[key]).setValue(record.get(key));
});
答案 1 :(得分:2)
尝试删除用于直接从记录和设置值分配值的变量,如下所示
onMylist2ItemTap: function(dataview, index, target, record, e, eOpts) {
var view = Ext.getCmp('mainview');
view.setActiveItem(2);
Ext.getCmp('name').setValue(record.get('name'));
Ext.getCmp('product_name').setValue(record.get('product_name'));
Ext.getCmp('mac').setValue(record.get('mac_address'));
Ext.getCmp('server').setValue(record.get('server_url'));
Ext.getCmp('start').setValue(record.get('start_date'));
Ext.getCmp('end').setValue(record.get('end_date'));
Ext.getCmp('duration').setValue(record.get('duration'));
Ext.getCmp('expiry').setValue(record.get('expiry_date'));
Ext.getCmp('features').setValue(record.get('feature'));
Ext.getCmp('license_id').setValue(record.get('license_id'));
Ext.getCmp('invoice').setValue(record.get('invoice_number'));
},