odoo 10如何创建Snippets Javascript选项

时间:2016-12-09 13:29:38

标签: odoo-10

我正在尝试根据https://www.odoo.com/documentation/10.0/howtos/themes.html#create-snippets

在odoo 10中创建代码段

我创建了片段并添加了js选项,即示例中的代码

(function() {
    'use strict';
    var website = odoo.website;
    website.odoo_website = {};

    website.snippet.options.snippet_testimonial_options = website.snippet.Option.extend({
        on_focus: function() {
            alert("On focus!");
        }
    })
})();

失败,因为未定义odoo.website参见

enter image description here

请帮忙

3 个答案:

答案 0 :(得分:5)

这是/theme_tst/static/src/js/tutorial_editor.js的正确代码

odoo.define('snippet_testimonial_options', function(require) {

    'use strict';

    var options = require('web_editor.snippets.options');

    options.registry.snippet_testimonial_options = options.Class.extend({

        on_focus: function() {

            alert("On focus!")

        },

    });

});

答案 1 :(得分:1)

for odoo11:我需要将on_focus更改为onFocus(没试过odoo10)

odoo.define('snippet_testimonial_options', function(require) {
    'use strict';
    var options = require('web_editor.snippets.options');
    options.registry.snippet_testimonial_options = options.Class.extend({

        onFocus: function() {

            alert("On focus!")

        },

    });
});

答案 2 :(得分:0)

sombatsombat 答案对我有用。在odoo 12中使用onFocus。事件列表在此link上给出。

第一个参数snippet_testimonial_options也是可选的。我们可以简单地忽略它。

odoo.define(function (require) {
    var options = require('web_editor.snippets.options');
    console.log(options);
    options.registry.snippet_testimonial_options = options.Class.extend({
        onFocus: function () {
            alert("On focus!")
        },
    });
});