代码之家  ›  专栏  ›  技术社区  ›  Stone

如何仅在视图加载到Odoo 10中后运行javascript

  •  1
  • Stone  · 技术社区  · 7 年前

    https://www.odoo.com/apps/modules/8.0/web_menu_hide_8.0/

    因此,我需要在页面呈现后在表单视图上调整类“o\u form\u sheet”。我可以知道如何使用javascript实现这一点吗?哪一类&我需要扩展什么方法?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Stone    7 年前

    我要回答我自己的问题。 经过研究,我发现最好的选择是使用load\u views函数继承ViewManager小部件。

    var ViewManager = require('web.ViewManager');
    
    ViewManager.include({
        load_views: function (load_fields) {
            var self = this;
    
            // Check if left menu visible
            var root=self.$el.parents();
            var visible=(root.find('.o_sub_menu').css('display') != 'none')
            if (visible) {
                // Show menu and resize form components to original values
                root.find('.o_form_sheet_bg').css('padding', self.sheetbg_padding);
                root.find('.o_form_sheet').css('max-width', self.sheetbg_maxwidth);
                root.find('.o_form_view div.oe_chatter').css('max-width', self.chatter_maxwidth);
            } else {
                // Hide menu and save original values
                self.sheetbg_padding=root.find('.o_form_sheet_bg').css('padding');
                root.find('.o_form_sheet_bg').css('padding', '16px');
                self.sheetbg_maxwidth=root.find('.o_form_sheet').css('max-width');
                root.find('.o_form_sheet').css('max-width', '100%');
                self.chatter_maxwidth=root.find('.o_form_view div.oe_chatter').css('max-width');
                root.find('.o_form_view div.oe_chatter').css('max-width','100%');
            }
    
            return this._super.apply(this, arguments, load_fields);
        },
    });