通过 js 代码使字段不可见 - ODOO 9

Make field invisible via js code - ODOO 9

我正在寻找一种使字段在 js 上不可见的方法(我正在制作自定义小部件 'InvisibleIfEmptry')。 我在扩展 FormWidget.AbstractField class 时试图覆盖 _check_visibility 方法:

var core = require('web.core'),
        form_common = require('web.form_common');
var InvisibleIfEmpty = form_common.AbstractField.extend({
start: function() {
            this.on("change:effective_readonly", this, function() {
                this._toggle_label();
                this._check_visibility();
            });
            this.render_value();
            this._toggle_label();
        },
_check_visibility: function() {
            if (this.get("effective_readonly"))
                this.$el.toggleClass('o_form_invisible',true);   
            }
                this.$el.toggleClass('o_form_invisible',false);
            }
        }, .....

但这只会使字段的值不可见,而不会使标签不可见。 我的猜测是改变 field_manager 的一些值,但我不知道是哪一个?

感谢您的帮助:)

这是我的 JS 代码:

odoo.define('myCustomModule', function(require)
{
    'use strict';
    var core = require('web.core'),
        form_common = require('web.form_common'),
        form_view = require('web.FormView');

    form_common.AbstractField.include({

        start: function() {

            this._super();
            // Check visibility logic below when content
            // changes or the form swich to view mode
            this.field_manager.on("view_content_has_changed", this, function() {
                this._check_visibility();
            });
            this.on("change:effective_readonly", this, function() {
                this._toggle_label();
                this._check_visibility();
        });
        },

        _check_visibility: function() {

            // If the form is in view mode and the field is empty,
            // make the field invisible
            window.alert(this.);
            if (this.field_manager.get("actual_mode") === "view" ) {
                if(this.get("value") == false){
                    this.$el.toggleClass('o_form_invisible',true);
                    this.$label.toggleClass('o_form_invisible',true);
                }else{
                    this.$el.toggleClass('o_form_invisible',this.get("effective_invisible"));
                    this.$label.toggleClass('o_form_invisible',this.get("effective_invisible"));
                }
            }else{
                this.$el.toggleClass('o_form_invisible',this.get("effective_invisible"));
                this.$label.toggleClass('o_form_invisible',this.get("effective_invisible"));
            }
        },
    });

});

但这适用于我所有的模块。 有谁知道如何从 AbstractField 得到 module/model 名字吗?