【问题标题】:Odoo12ce objet this not recognised inside of setinterval functionOdoo12ce 对象在 setinterval 函数内部无法识别
【发布时间】:2021-02-02 21:17:49
【问题描述】:

我正在使用 odoo12ce,但在编写新小部件时遇到了一些问题

我的新小部件显示了一些数据,3 秒后它应该会消失

    start: function () {
      var texto = ""
      texto += "<ul>"
      this.valor.forEach(element => {
        texto += "<li>" + element.cant + ' ' + element.type + "</li>"
      });
      texto  += "</ul>"
      this.$el.append(texto);

      setTimeout( function(){ 
        this.$el.empty();
       }, 3000);
    },

我得到了错误:Cannot read property 'empty' of undefined

在函数外部,对象工作正常,但在内部无法识别。我能做些什么来解决它? 提前致谢

【问题讨论】:

    标签: javascript python odoo odoo-12


    【解决方案1】:

    您只需将this 添加到setTimeout 的上下文中。因此您的代码将类似于以下内容:

    start: function () {
        var self = this;
        var texto = ""
        texto += "<ul>"
        this.valor.forEach(element => {
            texto += "<li>" + element.cant + ' ' + element.type + "</li>"
        });
        texto  += "</ul>"
        this.$el.append(texto);
    
        setTimeout( function(){ 
           self.$el.empty();
        }, 3000);
    },
    

    不要犹豫,让我们知道它是否有效。

    【讨论】:

    • 完美运行,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 2022-01-16
    • 2020-11-04
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多