Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

web js extend



  • 1、什么时候需要web.WebClient,这个作用是什么?

    2、在web.core中返回的json数据中会有这些键:比如one2many_view_registry,list_widget_registry,别的js可以给里面add数据,比如core.one2many_view_registry.add('list', One2ManyListView)
    这个是添加后有什么效果变化,这些东西又怎么使用?

    3、我formView.extend()后没有alert出东西,哪里有问题了?

    我是这样理解的:
    1、odoo中的tree,list视图实际是不是没有html,都是通过js写出来的啊,kanban视图应该是通过qweb的template写出来的吧;
    如果我想要修改某个视图的布局,增加元素,都是要写js实现的吧。

    2、至于什么是widget,比较模糊。

    odoo.define('sps_product', function(require) {
        'use strict';
    
        var Client = require('web.WebClient');
        var Model = require('web.DataModel');
        var Core = require('web.core');
        // add
        var formView = require('web.FormView');
        var formRelational = require('web.form_relational');
        var ListView = require('web.ListView');
        var o2m = Core.one2many_view_registry;
        alert('core o2m', o2m);
    
        formView.extend({
            init:function(parent){
                this._super(parent);
                alert('coming11');
                this.$el.append("<div>We are so happy to see you again in this menu!</div>");
                alert('append after---');
    //            var self = this;
    //            this._super.apply(this, arguments);
    //            $query = $el.html('<input type="text" placeholder="Search"/>');
    //            alert('add item===', $query);
    //            this.$('div.o_cp_right').before($query);
            },
        });
    


  • @huiweb js extend 中说:

    extend

    继承重写用 include,
    继承复制用 extend

    把extend 换成include试试



  • @guwenfengvip163-com
    换成include页不行的,感觉inlude里面的没有进去啊,都没有alert的



  • 你的JS 进去了么? alert('core o2m', o2m);  这一句能弹出来不



  • @guwenfengvip163-com
    alert('core o2m', o2m);这一句alert出来了,是include里面的没有alert出来



  • @hui

    var FormView = require('web.FormView');

    FormView.include({
    defaults: _.extend({}, FormView.prototype.defaults, {
    disable_autofocus: config.device.touch,
    }),
    init: function () {
    this._super.apply(this, arguments);
    if (config.device.size_class <= config.device.SIZES.XS) {
    this.rendering_engine = new FormRenderingEngineMobile(this);
    }
    },
    });



  • 可以远程帮你看下,这方面的js扩展和自定义我写过很多了。
    qq:601939654



  • @guwenfengvip163-com
    没反应的