Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未定义openerp_Javascript_Openerp_Odoo 8_Odoo Website - Fatal编程技术网

Javascript 未捕获引用错误:未定义openerp

Javascript 未捕获引用错误:未定义openerp,javascript,openerp,odoo-8,odoo-website,Javascript,Openerp,Odoo 8,Odoo Website,我在ODOO V8中创建了一个网站模板: <template id="assets_frontend" inherit_id="website.assets_frontend" name="MyTemplate"> <xpath expr="." position="inside"> <script type="text/javascript" src="/my_module/static/src/js/main.js"></sc

我在ODOO V8中创建了一个网站模板:

<template id="assets_frontend" inherit_id="website.assets_frontend" name="MyTemplate">
    <xpath expr="." position="inside">
        <script type="text/javascript" src="/my_module/static/src/js/main.js"></script>
    </xpath>
</template>


<template id="my_template">
    <script type="text/javascript" src="/my_module/static/src/js/main.js"/>
    <div>
        <table>
            <tr>
                <td>Email: <input type="text" id="email"/></td>
            </tr>
            <tr>
                <td colspan="3">
                    <input type="button" value="Submit" onclick="submitEmail();"/>
                </td>
            </tr>
        </table>
    </div>
</template>
但是,单击模板中的“提交”按钮时,浏览器控制台中将显示以下错误

Uncaught ReferenceError: openerp is not defined
我需要从
main.js
文件访问其中的ODOO模型和方法。如何解决上述错误,或者是否有任何方法可以从javascript文件访问ODOO类中定义的模型和方法


此错误不在ODOO中的基本模块中(如website_sale),而仅在我创建的新模块中出现。

您需要阅读此文档并注意“子类化小部件”。这是Odoo中的模块示例。您必须编写类似于该示例的程序。

在$(document)内。准备就绪,您无法访问openerp

在js文件中,创建一个与您的模块(非模型)同名的方法,并传递两个参数实例和模块

现在,在该方法中,您可以使用openerp实例访问模块,如:

function my_module(instance, module){
module = instance.point_of_sale;
var QWeb = instance.web.qweb;
_t = instance.web._t;
var OrderSuper = module.ProductListWidget;
}

那么我如何使用这个来访问自定义模型呢?实例与openerp(openerp的实例/对象)相同,因此您可以调用new instance.web.model('res.users'))
function my_module(instance, module){
module = instance.point_of_sale;
var QWeb = instance.web.qweb;
_t = instance.web._t;
var OrderSuper = module.ProductListWidget;
}