【问题标题】:How to avoid duplication function properties in extjs如何避免extjs中的重复函数属性
【发布时间】:2015-03-24 04:42:21
【问题描述】:

我有一个 extjs 代码类 User,我想在外面提取常用函数 convertFuntion。我怎么能做到这一点?

Ext.define('App.model.user.User', {
    extend: 'App.model.BaseModel',
    requires: [
               'Ext.data.writer.Json'
              ],
    fields: [

         { name: "roleIds",
           mapping: "rids",
           convert: convertFunction() {
            //same function body
           }
         },

         {
           name: "fieldIds",
           mapping: "fldids",
           convert: convertFunction() {
             //same function body
           }
         }
    ]
});

在其他类中创建静态方法并在此处引用它是个好主意吗?

Ext.define('App.model.user.User', {
        extend: 'App.model.BaseModel',
        requires: [
                   'Ext.data.writer.Json'
                  ],
        fields: [

             { name: "roleIds",
               mapping: "rids",
               convert: SomeOther.Class.convertFunction
             },

             {
               name: "fieldIds",
               mapping: "fldids",
               convert: SomeOther.Class.convertFunction
             }
        ]
    });

【问题讨论】:

  • 声明一个自定义字段类型并使用它。
  • 我看到我们可以在 extjs 5.0 中创建自定义字段类型,这在 extjs 4.2 中是否可行?

标签: extjs extjs4.2 extjs-mvc


【解决方案1】:

直接在模型中定义你的 convertFunction ...

    convertFn: function(v, record) {
    console.log(v);
},

..并通过它为每个字段输入构造

    constructor: function(config) {
    this.callParent();
    var me = this;
    Ext.Array.each(me.fields, function(field, index, selfFields) {
        field.convert = me.convertFn;
    });
}

查看fiddle中的完整示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多