跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. odoo12 widget的用法

odoo12 widget的用法

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
16 帖子 4 发布者 6.5k 浏览 4 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • L las_aves

    @l732893879
    您好, 我在项目中全局搜索没有发现您提到的 form_custom_registry, 请问这个是12的吗

    L 离线
    L 离线
    l732893879
    发表于 最后由 编辑
    #7

    @las_aves sorry这是10的,可能到12换写法了

    1 条回复 最后回复
    0
    • 鲍 鲍永道
      var registry = require('web.field_registry');
      然后对应注册添加:
      // Basic fields
      registry
          .add('abstract', AbstractField)
          .add('input', basic_fields.InputField)
          .add('integer', basic_fields.FieldInteger)
          .add('boolean', basic_fields.FieldBoolean)
          .add('date', basic_fields.FieldDate)
          .add('datetime', basic_fields.FieldDateTime)
          .add('domain', basic_fields.FieldDomain)
          .add('text', basic_fields.FieldText)
          .add('html', basic_fields.FieldText)
          .add('float', basic_fields.FieldFloat)
          .add('char', basic_fields.FieldChar)
          .add('link_button', basic_fields.LinkButton)
          .add('handle', basic_fields.HandleWidget)
          .add('email', basic_fields.FieldEmail)
          .add('phone', basic_fields.FieldPhone)
          .add('url', basic_fields.UrlWidget)
          .add('CopyClipboardText', basic_fields.TextCopyClipboard)
          .add('CopyClipboardChar', basic_fields.CharCopyClipboard)
          .add('image', basic_fields.FieldBinaryImage)
          .add('binary', basic_fields.FieldBinaryFile)
          .add('pdf_viewer', basic_fields.FieldPdfViewer)
          .add('monetary', basic_fields.FieldMonetary)
          .add('percentage', basic_fields.FieldPercentage)
          .add('priority', basic_fields.PriorityWidget)
          .add('attachment_image', basic_fields.AttachmentImage)
          .add('label_selection', basic_fields.LabelSelection)
          .add('state_selection', basic_fields.StateSelectionWidget)
          .add('kanban_state_selection', basic_fields.StateSelectionWidget)
          .add('boolean_favorite', basic_fields.FavoriteWidget)
          .add('boolean_button', basic_fields.FieldBooleanButton)
          .add('boolean_toggle', basic_fields.BooleanToggle)
          .add('statinfo', basic_fields.StatInfo)
          .add('percentpie', basic_fields.FieldPercentPie)
          .add('float_time', basic_fields.FieldFloatTime)
          .add('float_factor', basic_fields.FieldFloatFactor)
          .add('float_toggle', basic_fields.FieldFloatToggle)
          .add('progressbar', basic_fields.FieldProgressBar)
          .add('toggle_button', basic_fields.FieldToggleBoolean)
          .add('dashboard_graph', basic_fields.JournalDashboardGraph)
          .add('ace', basic_fields.AceEditor);
      
      L 离线
      L 离线
      las_aves
      发表于 最后由 编辑
      #8
      此主題已被删除!
      1 条回复 最后回复
      0
      • 鲍 鲍永道
        var registry = require('web.field_registry');
        然后对应注册添加:
        // Basic fields
        registry
            .add('abstract', AbstractField)
            .add('input', basic_fields.InputField)
            .add('integer', basic_fields.FieldInteger)
            .add('boolean', basic_fields.FieldBoolean)
            .add('date', basic_fields.FieldDate)
            .add('datetime', basic_fields.FieldDateTime)
            .add('domain', basic_fields.FieldDomain)
            .add('text', basic_fields.FieldText)
            .add('html', basic_fields.FieldText)
            .add('float', basic_fields.FieldFloat)
            .add('char', basic_fields.FieldChar)
            .add('link_button', basic_fields.LinkButton)
            .add('handle', basic_fields.HandleWidget)
            .add('email', basic_fields.FieldEmail)
            .add('phone', basic_fields.FieldPhone)
            .add('url', basic_fields.UrlWidget)
            .add('CopyClipboardText', basic_fields.TextCopyClipboard)
            .add('CopyClipboardChar', basic_fields.CharCopyClipboard)
            .add('image', basic_fields.FieldBinaryImage)
            .add('binary', basic_fields.FieldBinaryFile)
            .add('pdf_viewer', basic_fields.FieldPdfViewer)
            .add('monetary', basic_fields.FieldMonetary)
            .add('percentage', basic_fields.FieldPercentage)
            .add('priority', basic_fields.PriorityWidget)
            .add('attachment_image', basic_fields.AttachmentImage)
            .add('label_selection', basic_fields.LabelSelection)
            .add('state_selection', basic_fields.StateSelectionWidget)
            .add('kanban_state_selection', basic_fields.StateSelectionWidget)
            .add('boolean_favorite', basic_fields.FavoriteWidget)
            .add('boolean_button', basic_fields.FieldBooleanButton)
            .add('boolean_toggle', basic_fields.BooleanToggle)
            .add('statinfo', basic_fields.StatInfo)
            .add('percentpie', basic_fields.FieldPercentPie)
            .add('float_time', basic_fields.FieldFloatTime)
            .add('float_factor', basic_fields.FieldFloatFactor)
            .add('float_toggle', basic_fields.FieldFloatToggle)
            .add('progressbar', basic_fields.FieldProgressBar)
            .add('toggle_button', basic_fields.FieldToggleBoolean)
            .add('dashboard_graph', basic_fields.JournalDashboardGraph)
            .add('ace', basic_fields.AceEditor);
        
        L 离线
        L 离线
        las_aves
        发表于 最后由 编辑
        #9

        @鲍永道

        注册之后, field的name属性消失了

        odoo.define("account.upload_test", function(require){
        "use strict"
        
        require('web.dom_ready');
        var field_registry = require('web.field_registry');
        var basic_field = require('web.basic_fields');
        var Field_Text = basic_field.FieldText;
        
            var Imgs = Field_Text.extend({
                start : function(){
                    var info = JSON.parse(this.value);
                    console.log(info);
                },
            });
        
            field_registry.add('test_text', Imgs);
            return Imgs;
        });
        

        view code

        <field name="x_product_video" class="test_test" id="imageList" widget="test_text"/>
        

        加载之后的页面, name属性没有了, JS中的代码可以正常执行, 请问是哪一步有问题

        加载后渲染的代码

        <span class="o_field_text o_field_empty test_test" data-original-title="" title=""></span>
        
        1 条回复 最后回复
        0
        • 鲍 离线
          鲍 离线
          鲍永道
          发表于 最后由 编辑
          #10

          js代码写错了,你现在的写法只是用于调试,没有自己实现widget的逻辑,另外,extend的start的方法也不是你这么写的,后面需要return this._super();

          L 1 条回复 最后回复
          0
          • 鲍 鲍永道

            js代码写错了,你现在的写法只是用于调试,没有自己实现widget的逻辑,另外,extend的start的方法也不是你这么写的,后面需要return this._super();

            L 离线
            L 离线
            las_aves
            发表于 最后由 编辑
            #11

            @鲍永道
            谢谢, 按照您的方法我已经成功处理了错误代码。
            但当我在start方法里尝试用JQ.html() 方法向一个div中插入元素时并没有成功,尝试获取这个div也是空的

            start : function(){
                        var videos = this.record.data.x_product_video;
                        var arr = videos.split(";");
                        var html = "";
                        for(var i = 0; i < arr.length; i++){
                           //add html 
                            html += "";
            
                        }
                        $("#preview").html(html);
                        console.log(document.getElementById("preview"));
                        return this._super();
                    },
            
            1 条回复 最后回复
            0
            • 鲍 离线
              鲍 离线
              鲍永道
              发表于 最后由 编辑
              #12

              生命周期问题,还没有jq对象,所以不能html。

              L 1 条回复 最后回复
              0
              • 鲍 鲍永道

                生命周期问题,还没有jq对象,所以不能html。

                L 离线
                L 离线
                las_aves
                发表于 最后由 编辑
                #13

                @鲍永道
                那么我应该如何正确的处理

                1 条回复 最后回复
                0
                • 鲍 离线
                  鲍 离线
                  鲍永道
                  发表于 最后由 编辑
                  #14

                  可以在其他方法里面写,也可以设置延时一下。

                  L 1 条回复 最后回复
                  0
                  • 鲍 鲍永道

                    可以在其他方法里面写,也可以设置延时一下。

                    L 离线
                    L 离线
                    las_aves
                    发表于 最后由 编辑
                    #15

                    @鲍永道
                    谢谢, 我最后用延时去处理了。
                    不胜感激!

                    鲍 1 条回复 最后回复
                    0
                    • L las_aves

                      @鲍永道
                      谢谢, 我最后用延时去处理了。
                      不胜感激!

                      鲍 离线
                      鲍 离线
                      鲍永道
                      发表于 最后由 编辑
                      #16

                      @las_aves不用客气,多交流。15068334016也可以加微信聊。

                      1 条回复 最后回复
                      0

                      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                      厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                      有了你的建议,这篇帖子会更精彩哦 💗

                      注册 登录
                      回复
                      • 在新帖中回复
                      登录后回复
                      • 从旧到新
                      • 从新到旧
                      • 最多赞同


                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组