2

以下のようなカスタム検証を作成しました

Ext.apply(Ext.form.field.VTypes, {
    valInt: function(v) {
        return /^(\d+(,\d+)*)?$/.test(v);
    },
    valIntText: 'Must be in the form #,#',
    valIntMask: /[\d\,]/i
});

できます。しかし、このようなすべてのカスタム検証を単一のファイルで作成してから、それをロードまたは自動ロードしたいと考えています。どうすればいいのですか?

app.js で以下のようにできます

 Ext.onReady(function() {    
  Ext.apply(Ext.form.field.VTypes, {
        valInt: function(v) {
            return /^(\d+(,\d+)*)?$/.test(v);
        },
        valIntText: 'Must be in the form #,#',
        valIntMask: /[\d\,]/i
    });
});

しかし、app.js ファイルはすべての検証後に大きくなります。

4

2 に答える 2

2

ドキュメントによると、次のようなオーバーライドを作成できます。

Ext.define('Override.form.field.VTypes', {
    override: 'Ext.form.field.VTypes',

    valInt: function(v) {
        return /^(\d+(,\d+)*)?$/.test(v);
    },

    valIntText: 'Must be in the form #,#',

    valIntMask: /[\d\,]/i
});

オーバーライドディレクトリを宣言するキーapp.jsonがあり、次のようになります。overrides

/**
   * Comma-separated string with the paths of directories or files to search. Any classes
   * declared in these locations will be automatically required and included in the build.
   * If any file defines an Ext JS override (using Ext.define with an "override" property),
   * that override will in fact only be included in the build if the target class specified
   * in the "override" property is also included.
   */
  "overrides": [
    "overrides",
    "${toolkit.name}/overrides"
  ],
于 2016-06-28T05:40:30.737 に答える