如何在 odoo10 中创建一个简单的小部件?odoo10中的以下相应代码?我如何将此代码转换为 odoo10?
local.HomePage = instance.Widget.extend({
start: function() {
this.$el.append("<div>Hello dear Odoo user!</div>");
var greeting = new local.GreetingsWidget(this);
return greeting.appendTo(this.$el);
},
});
Run Code Online (Sandbox Code Playgroud)
在 Odoo-10 中创建小部件和模板
\n小部件:
\n例子:
\nwidget_name.js
\nodoo.define('module.model_name', function(require) {\n "use strict";\n var Widget = require('web.Widget');\n var core = require('web.core');\n var Model = require('web.Model');\n \n var QWeb = core.qweb;\n var _t = core._t;\n \n // here we are getting the value in an array.\n var widget_name = Widget.extend({\n //render your template\n "template" : "template_name",\n \n //initialize\n init : function () {\n var self = this;\n this._super(parent);\n //initialize values to variables\n }\n\n //Binding Events\n events : {\n 'click .class_ex': 'method1',\n 'click .class_ex1': 'method2',\n },\n \n start : function() {\n var self = this;\n this._super(parent); \n //your functionality code and logic\n },\n\n //creating functions\n method1:function(){\n //do something when click event fire on class_ex\n },\n method2:function(){\n //do something when click event fire on class_ex\n },\n });\n\n return widget_name;\n});\nRun Code Online (Sandbox Code Playgroud)\n您需要像这样在 odoo 中添加这个 .js 和 .css 文件。
\n资产后端.xml
\n<odoo>\n <data>\n <template id="assets_backend" inherit_id="web.assets_backend">\n <xpath expr="script[last()]" position="after">\n <script type="text/javascript" src="/module/static/src/js/widget_name.js"></script>\n <link href="/module/static/src/css/home.css" rel="stylesheet"></link>\n </xpath>\n </template>\n </data>\n</odoo>\nRun Code Online (Sandbox Code Playgroud)\n设计小部件模板:
\ntmpl.xml
\n<?xml version="1.0"?>\n<templates id="template" xml:space="preserve">\n <t t-name="template_name">\n <div class=\xe2\x80\x9dmyclass\xe2\x80\x9d>\n //design your template here \n <div class=\xe2\x80\x9dclass_ex\xe2\x80\x9d>\n //body\n </div>\n <div class=\xe2\x80\x9dclass_ex1\xe2\x80\x9d>\n //body\n </div>\n </div>\n </t>\n</templates> \nRun Code Online (Sandbox Code Playgroud)\n注意:无需在 tmpl.xml 文件中写入 odoo 标记。
\n如何使用小部件
\n通过操作或对象按钮使用小部件。
\n如下所示,我们将 template_name 添加到 action_registry,因此现在我们可以使用该名称来使用 XML 执行。
\n例子:
\n<record id="template_id" model="ir.actions.client">\n <field name="name">template name</field>\n <field name="tag">template_name</field>\n <field name="target">new</field>\n</record> \nRun Code Online (Sandbox Code Playgroud)\n您也可以像这样使用您的小部件。
\n<field name="mobile" widget="template_name" /> \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5008 次 |
| 最近记录: |