odoo widget 渲染

odoo 的 widget 渲染时,template 应该是必须的。

odoo.define('mycounter.js', function (require) {

    "use strict";

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

var Counter = Widget.extend({

    template: 'mycounter',

    events: {

        'click button': '_onClick',

    },

    init: function (parent, value) {

        this._super.apply(this, arguments);

        this.count = value;

    },

    _onClick: function () {

        this.count++;

        console.log(this.count)

        this.$('.val').text(this.count);

    },

});

return Counter;

qweb:


   

       

       

   


widget 写好后需要地方调用,fieldwidget  必须向 fieldRegistry 里  add,一般的 widget 需要被 new 和 添加到 dom,有 appendTo prependTo 等方法:


this.counter = new mycounter(self, 4);

this.counter.appendTo(self.$el);




odoo widget 渲染_第1张图片


问题:1,怎么通过 $ 定位元素;2,页面有生成,但是事件没触发。


问题2: 

       

       

   

必须被容器包着,作用范围在容器内

你可能感兴趣的:(odoo widget 渲染)