1

Web クライアントで基本的な Field オブジェクトをカスタマイズしようとしています。これが私のコードです:

openerp.web_mymodule = function(openerp) {

    openerp.web.form.Field = openerp.web.form.Field.extend({
        init: function(view, node) {
            console.log('mine');
            this._super(view, node);
        }
    });
    [...]

}

しかし、動作していません。私の知る限り、これは(同じファイル内の)次のコードと同様に機能するはずです。

[...]
openerp.web.form.FieldChar = openerp.web.form.FieldChar.extend({

    init: function (view, node) {
        this._super(view, node);
        console.log('mine')
    }

});

私が見ることができる唯一の違いは、FieldChar を含むすべてのウィジェットが登録されているのview_form.jsに対し、登録されてFieldいないことです。

この背後にある「黒魔術」が欠けていますか?tnx

4

1 に答える 1

2

拡張の代わりにインクルードを使用してみましたか?

openerp.web_mymodule = function(openerp) {

    openerp.web.form.Field.include({
        init: function(view, node) {
            console.log('mine');
            this._super(view, node);
        }
    });
    [...]
}

xmo はここに説明を書きました: openerp web client 6.1: how to override base javascript functions

于 2012-08-14T13:28:04.620 に答える