Odoo 8のフォームビューのボタンからクライアントサイドのJavaScriptを実行する必要があります。このボタンは、この辞書を返すPythonメソッドを実行します。Odoo 8で新しい(空白の)ビューをロードせずにクライアントサイドのJavaScriptを実行する
次のように{"type": "ir.actions.client",
"tag": "my_module.do_something",}
do_somethingが.jsファイルに定義されています。
openerp.my_module = function (instance) {
instance.web.client_actions.add("my_module.do_something", "instance.my_module.Action");
instance.my_module.Action = instance.web.Widget.extend({
init: function() {
// Do a lot of nice things here
}
});
};
を今、ジャバスクリプトがロードされ、適切に実行されますが、でも、init関数を起動する前に、Odooは、ブランドの新しい、空白のビューがロードされます、そして一度javascriptが終わったら私は他のメニューエントリをブラウズすることができません。実際には、どこに私はこのエラーを取得するクリック:
Uncaught TypeError: Cannot read property 'callbackList' of undefined
私が代わりに必要なもの、新しいビューをロードせずに、ボタンが属するフォームビューからJavaScriptを実行することですので、両方のjavascriptのものが行わ取得し、すべてのコールバックと環境全体が良好な状態になります。私の直感は、init関数をオーバーライドすべきではないということです(あるいは、すべてが壊れている、私はOdooのクライアント側のjsにはかなり新しい)が、私はdocを見つけることができませんでした。私は欲しい。それを得るための任意のアイデア?
ありがとうございましたsimahawk、あなたは私の一日を作った! githubの検索へのリンクには、私が必要としていたことの多くの例があり、私の機能を修正することができました。名誉! – warp10