ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javascript-ListView,FormView和PageView之间有什么区别? (ODOO | OpenERP)在JScript中

2019-10-27 23:35:54  阅读:215  来源: 互联网

标签:odoo openerp javascript


openerp.web.XXXXXXXX.include({…?还有ListView,FormView和PageView之间有什么区别?还有更多吗?我一直在尝试为ODOO学习JS,但是官方文档很差或不够精确. ,我真的想知道如何正确使用它们?还有多少呢?,如果您可以分享有关此主题的指南,那将是非常不错的.感谢您的宝贵时间!

解决方法:

基本上,您可以学习具有所有可能的属性及其从Odoo documentation开始的子元素的视图概念.

形式

表单视图用于显示单个记录中的数据.它们的根元素是< form>.它们由常规HTML以及其他结构和语义组件组成.

>一次处理单个记录.
>可以包含其他结构部件(例如笔记本电脑,板材).
>不能进行分类和分类.搜索,因为目前只有一条记录.

清单

列表视图的根元素是< tree>.列表视图的根可以具有以下属性:

>在树中显示记录集.
>不能包含任何结构组件.
>可以搜索和排序.

odoo中每个视图都有javascript文件,您可以从WEB模块中引用它.

> Web / static / src / js / view_form.js
> Web / static / src / js / view_list.js
> Web / static / src / js / view_list_editable.js
> Web / static / src / js / view_tree.js

其他支持功能边栏,xml_to_json,xml_to_str,json_node_to_xml,fields_view_get以及许多其他功能都可以在views.js中使用.

页面是结构组件,因此在formview中被覆盖.

WEB的Javascript模块结构.

JavaScript模块主要基于这三个概念进行构造.

> Classes
> Widgets
> The QWeb Template Engine

课程:

与大多数模块一样,与大多数面向对象的语言相反,javascript虽然可以提供大致等效的(如果是较低级别且较冗长的)机制,则它不会在类中构建.
为简单起见和对开发人员友好,Odoo Web提供了基于Javascript Inheritance的类系统.

小部件:

Odoo Web客户端将jQuery捆绑在一起,以简化DOM操作.它比标准的W3C DOM2有用并且提供了更好的API,但是不足以构成复杂的应用程序,从而导致难以维护.

与面向对象的桌面UI工具包(例如Qt,Cocoa或GTK)非常相似,Odoo Web制作了负责页面各部分的特定组件.在Odoo网站中,此类组件的基础是Widget()类,该类专门处理页面部分并为用户显示信息.

QWeb模板引擎:

这允许生成和显示任何类型的内容,但是在生成大量DOM(大量重复,引用问题等)时变得笨拙.

与许多其他环境一样,Odoo的解决方案是使用template engine.Odoo的模板引擎称为QWeb.

QWeb是基于XML的模板语言:

>它完全用JavaScript实现并在浏览器中呈现
>每个模板文件(XML文件)包含多个模板
>尽管可以使用,但它在Odoo Web的Widget()中具有特殊支持
在Odoo的Web客户端之外(可以使用Widget()
不依赖QWeb)

示例:(检索视图的每页记录数,默认为80,您可以通过重写此方法来更新它)

完成此类任务有两个主要方面.

>根据需要添加/更新方法.
>将创建的文件添加到适当的模板.

为JavaScript文件添加此功能,并使用模板继承将此文件添加到web_backend资产中,然后此代码的效果将自动出现.

instance.web.ListView.include({
    limit : function(){
        if (this._limit === undefined) {
            this._limit = (this.options.limit
            || this.defaults.limit
            || (this.getParent().action || {}).limit
            || 160);
        }
        return this._limit;
    },
});

xml代码:

<template id="assets" inherit_id="web.assets_backend">
      <xpath expr="//script[@src='/web/static/src/js/view_tree.js']" position="after">
              <script type="text/javascript" src="your script file path"></script>
      </xpath>
 </template>

安装模块并查看效果,就像使用javascript继承可以完成任何事情一样.

标签:odoo,openerp,javascript
来源: https://codeday.me/bug/20191027/1948051.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有