3

プログラムでカスタム Vtype を使用しようとしていました。ここで多くの人が私を助けようとしました。しかし、私はそれらから多くの利益を得ることができませんでした. これが私のコードでした。

Ext.apply(Ext.form.VTypes, {
password: function(val, field) {
if (field.initialPassField) {
var pwd = Ext.getCmp(field.initialPassField);
return (val == pwd.getValue());
}
return true;
},
passwordText: 'What are you doing?<br/>The passwords entered
do not match!'
});

このコードをアプリケーションの「起動」機能に含め、vtype を「password」に変更しました。それは正しい方法ですか?しかし、私は結果を得ました。私が間違っていて、他の方法が利用可能な場合は、私に知らせてください。これは、アプリケーションの起動機能です。

Ext.Loader.setConfig({
enabled: true
});

Ext.application({
views: [
'signupForm'
],
autoCreateViewport: true,
name: 'MyApp',

launch: function() {
Ext.apply(Ext.form.VTypes, {
password: function(val, field) {
if (field.initialPassField) {
var pwd = Ext.getCmp(field.initialPassField);
return (val == pwd.getValue());
}
return true;
},
passwordText: 'What are you doing?<br/>The passwords entered do not match!'
});
}

});

ありがとうございました

4

2 に答える 2

1

オーバーライドできますExt.form.field.VTypes。これはシングルトンであるため、プロトタイプ (つまり ) ではなく、実際にExt.form.field.VTypesオブジェクトを直接変更しますExt.form.field.VTypes.prototype

Ext.define('MyApp.Ext.form.field.VTypes', {
    override: 'Ext.form.field.VTypes'
    ,test: function() {
        // ...
    }
    ,testText: '...'
});

そうすることの利点は、クラス・ローダーがこのオーバーライドを標準クラスのように管理できることです。つまり、アプリケーション定義またはその他の場所でオーバーライドを要求できます。例えば:

Ext.application({
    requires: [
        'MyApp.Ext.form.field.VTypes'
    ]
    // ...
});

アップデート

これがあなたのコードで得られるものです。

まず、ファイルを作成しますapp/VTypes.js

// I've simplified the class name, compared to above    
Ext.define('MyApp.VTypes', {
    override: 'Ext.form.field.VTypes' // <= this is the line that makes it an override

    ,password: function(val, field) {
        if (field.initialPassField) {
            var pwd = Ext.getCmp(field.initialPassField);
            return (val == pwd.getValue());
        }
        return true;
    }

    ,passwordText: 'What are you doing?<br/>The passwords entered do not match!'
});

次に、アプリケーション定義でそれを必要とします (つまりapp.js):

Ext.application({
    name: 'MyApp'
    ,requires: [
        'MyApp.VTypes'
    ]
    // ...
});
于 2013-11-07T10:21:06.590 に答える