2016-06-01 6 views
2

을 정의되지 않은 내가 ODOO V8의 웹 사이트 템플릿 만들었습니다catch되지 않은 오류 ReferenceError가 : openerp이

<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> 

그리고 main.js 파일의 내용은 다음과 같습니다

$(document).ready(function() { 
    "use strict"; 

    function submitEmail() { 
     var self = this; 
     var website = openerp.website; 
     var Users = new openerp.website.Model('res.users'); 
     // ... 
    } 
})(); 

그러나에

는 제출 '버튼을 클릭 템플릿에서 브라우저 콘솔에 다음 오류를 표시합니다.

Uncaught ReferenceError: openerp is not defined 

main.js 파일에서 ODOO 모델 및 방법에 액세스해야합니다. 어떻게하면 위의 오류를 해결할 수 있습니까? 또는 모델과 메소드에 액세스 할 수있는 방법이 ODOO 클래스에서 javascript 파일로 정의되어 있습니까?

이 오류는 ODOO의 기본 모듈 (예 : website_sale)에 없으며 내가 만든 새 모듈에만 오류가 있습니다.

답변

1

inside $ (document) .ready 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; 
} 
+0

어떻게 이것을 사용하여 맞춤 모델에 액세스 할 수 있습니까? –

+1

인스턴스는 openerp (instance/openerp의 객체)와 동일하므로 new instance.web.Model ('res.users')를 호출 할 수 있습니다. – prakash

관련 문제