使javascript功能更短

时间:2016-06-03 06:05:53

标签: javascript extjs

好的,所以我知道这个标题可能没有正确定义,但我基本上对使我在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);
},

它真的很长,有没有办法可以缩短它,使它更有效率 感谢

2 个答案:

答案 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'));
},