首页 > 其他分享 >odoo owl playground

odoo owl playground

时间:2023-04-20 09:56:28浏览次数:39  
标签:todoref owl console log toggleState job playground odoo todo

https://odoo.github.io/owl/playground/

 

/** @odoo-module **/

const { Component, useState, useRef, mount, props } = owl;

class Task extends Component {
    static template = "tasktemplate";
    static props = ["task", "toggleState"];
    
    toggleState(){
        console.log("child");
        this.props.toggleState(this.props.task);
    }
    testclick(){
        console.log("test click");
    }
    setup(){
        console.log("started");
    }
}

class Tasks extends Component {
    static template = "counter";
    static components = { Task };
    val = useState({val: 0});
    todo = useState([]);
    todoref = useRef("todoref");
    
    addtask(){
        this.val.val++;
        console.log(this.todoref.el.value);
        console.log(this.todo.length);
        this.todo.push({id:this.todo.length+1, description: this.todoref.el.value, done:false});
        this.todoref.el.focus();
    }
    
    toggleState(job){
        console.log("parent");
        console.log(job);
    }
    remove(job){
        console.log(job);
    }

    setup(){
        this.todo = [
            { id: 1, description: "buy milk", done: false },
            { id: 2, description: "buy cat", done: true },
            { id: 3, description: "buy book", done: false },
            ];
    }
}

mount(Tasks, document.body,  { templates: TEMPLATES, dev: true});

  

 

<template>
  <div t-name="counter">
    <t t-esc="val.val"></t><br />
    <input t-name="todoinput" t-ref="todoref" />
    <button t-on-click="addtask">ClickMe</button>
    <div>
      <t t-foreach="todo" t-as="job" t-key="job.id">
        <div>
          <Task task="job" toggleState.bind="toggleState"  />
          <!--<input type="checkbox" t-att-checked="job.done" t-on-click="()=>toggleState(job)" />-->
          <!--<t t-esc="job.description"></t>-->
          <!--<span t-on-click="()=>remove(job)">=>X</span>-->
        </div>
      </t>
    </div>
  </div>
  
  <div t-name="tasktemplate">
    <input type="checkbox" t-att-checked="props.task.done" t-on-click="toggleState" />
    <t t-esc="props.task.description" />
    <span t-on-click="testclick">=>X</span>
  </div>
</template>

  

标签:todoref,owl,console,log,toggleState,job,playground,odoo,todo
From: https://www.cnblogs.com/pythonClub/p/17335705.html

相关文章

  • odoo 开发入门教程系列-准备一些操作(Action)?
    准备一些操作(Action)?到目前为止,我们主要通过声明字段和视图来构建模块。在任何真实的业务场景中,我们都希望将一些业务逻辑链接到操作按钮。在我们的房地产示例中,我们希望能够:取消或将房产设置为已售出接受或拒绝报价有人可能会说,我们已经可以通过手动更改状态来完成这些事情,但这并......
  • docker compose 安装 odoo(补充)
    1.配置扩展目录odoo配置文件/opt/odoo/config/odoo.conf#内容[options]addons_path=/mnt/extra-addonsdb_host=localhostdb_user=odoodb_name=odoodb_password=odoodocker-composer.yml配置version:'3.1'services:web: image:od......
  • odoo 开发入门教程系列-继承(Inheritance)
    继承(Inheritance)Odoo的一个强大方面是它的模块化。模块专用于业务需求,但模块也可以相互交互。这对于扩展现有模块的功能非常有用。例如,在我们的房地产场景中,我们希望在常规用户视图中直接显示销售人员的财产列表。在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建......
  • Odoo16_月份选择(owl)
    1.js/**@odoo-module**/const{Component}=owl;import{registry}from"@web/core/registry";exportclassFsnMonthextendsComponent{setup(){super.setup();}onChangeValue(ev){this.props.record.upda......
  • odoo中用javascript调用model中定义好的方法
    odoo中如果前端界面要调用后台model中写好的方法,很简单。使用do_action即可,比如要调用改res.users的默认语言后执行的方法 odoo.define('switch_language.SwitchLanguageMenu',function(require){"usestrict";varModel=require('web.Model');varse......
  • odoo Docker Compose 部署
    1.docker-compose.yml配置version:'3.1'services:web: image:odoo:14 depends_on: -mydb ports: -"8069:8069" environment: -HOST=mydb -USER=odoo -PASSWORD=myodoo volumes: -odoo-web-data:/var/lib/odoo -./config......
  • odoo 后台开发(问题)
    1.Views视图button按钮属性type:主要使用action和objectobject:指定name="模型函数"action:指定name="%(record的id)d"context:传入上下文参数,如设置context="{'active_id':id}"则可以在模型文件使用环境上下文获取传入的值active_id=self.env.cont......
  • odoo 开发入门教程系列-约束(Constraints)
    约束(Constraints)上一章介绍了向模型中添加一些业务逻辑的能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误的数据?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。odoo提供了两种设置自动验证恒定式的方法:Python约束andSQL约束。SQL参考:与此......
  • odoo面试问题总结
    基础问题:Model和TransientModel区别是什么?什么场景下应该使用TransientModel?字段的compute属性是用来做什么的?如何将包含compute属性的字段的值存储到数据库中?如何创建一个索引字段?如何设置一个字段的默认值?默认值可以是一个函数吗?如何给限定某个字段只能由某个让用户组的......
  • ODOO计量单位的使用
    1计量单位功能模块计量单位模块主要功能是按不同计量单位来处理产品,可在库存,销售等模块中使用,用来处理买卖之间的不同计量单位换算。比如:从国外供应商买的牛肉单位是磅,但牛肉销售给国内用户则以公斤往外卖。1.1新建计量单位类别form视图列表字段:a.计量单位类别,必填字段,例如:......