2016-06-01 31 views
2

Ich habe eine Website-Vorlage in ODOO V8 erstellt:Uncaught Reference: OpenERP nicht definiert ist

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

und der Inhalt in main.js Datei sind:

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

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

Aber Sie auf den Button Submit-Button In der Vorlage wird der folgende Fehler in der Browserkonsole angezeigt.

Uncaught ReferenceError: openerp is not defined 

Ich brauche die ODOO Modelle und Methoden in es aus der main.js Datei zuzugreifen. Wie kann ich den oben genannten Fehler beheben oder gibt es eine Möglichkeit, auf die in ODOO-Klassen definierten Modelle und Methoden über eine JavaScript-Datei zuzugreifen?

Dieser Fehler ist nicht in den Basismodulen (wie website_sale) in Odoo und der Fehler ist nur in neuen Modulen, die ich erstellt habe.

Antwort

1

innerhalb $ (Dokument) .bereit Sie können nicht auf Openerp zugreifen.

In dem js Datei ein Verfahren gleichen Namen wie Ihr Modul erstellen (nicht-Modell) und Pass zwei Parameter Instanz und Modul

nun in der Methode, die Sie das Modul mit Instanz von OpenERP wie zugreifen können:

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

also wie kann ich auf ein benutzerdefiniertes Modell mit diesem zugreifen? –

+1

Instanz ist das gleiche wie Openerp (Instanz/Objekt von Openerp), so dass Sie neue instance.web.Model ('res.users') aufrufen können – prakash

Verwandte Themen