콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
8584 화면

I'm new to openerp, and try to build a web module by following doc.openerp.com/trunk/web/module/ step by step, now the problem is when I began to change action to instance.web.Widget.extend

instance.web_example.Action = instance.web.Widget.extend({
    className: 'oe_web_example',
    start: function () {
        // this.$el.text("Hello, world!");
        console.log("Executed the action", action);
        return this._super();
    }
});

when I click the menu i got this error , TypeError: ClientWidget is null, I double checked the javascript file and __openerp__.py which is exactly identical to the document.

The database was clean and no other module installed but this one.

Any one any idea?

아바타
취소
베스트 답변

Following doc.openerp.com/trunk/web/module/ the below Code will works:-

web_example/web_example.xml

<openerp>
    <data>
        <record model="ir.actions.client" id="action_client_example">
            <field name="name">Example Client Action</field>
            <field name="tag">example.action</field>
        </record>
        <menuitem action="action_client_example"
                  id="menu_client_example"/>
    </data>
</openerp>

static/src/js/first_module.js

openerp.web_example = function (instance) {
  instance.web.client_actions.add('example.action', 'instance.web_example.Action');
instance.web_example.Action = instance.web.Widget.extend({
    className: 'oe_web_example',
    start: function () {
         this.$el.text("Hello, world!");
        //console.log("Executed the action", action); Action is not defined
        return this._super();
    }
});
};
아바타
취소
작성자

Thanks man. you known I just change one line of code which you comment it out, that because this.$el.text("Hello, world!") got same error. and if I change the instance.web_example.Action = function(...... , it works. BTW, I restart the server and refresh browser.

작성자

Finally sort it out, there is a inconsistent typing in the tutorial, previous one is instance.web.client_actions.add('example.action', 'instance.web_example.action', next step is instance.web.client_actions.add('example.action', 'instance.web_example.Action', thanks for the help anyway.

관련 게시물 답글 화면 활동
2
7월 25
1490
1
5월 25
955
2
5월 25
1590
0
10월 24
1181
1
7월 24
3284