最近写一个模块 需要 在客户端干点事.
按常规的方法, 应该是写个 客户端模块. 在 客户端 init, start, render 去渲染个按钮出来干事.暂时还不太理解WEB模块如何很好地同服务器端通讯.
所以, 还是使用传统的OE server 模块来干这事.
OE 提供 ir.actions.client (客户端事件) 来让服务端与 客户端进行事件交互.
所以, 只需要在 view xml 中. 添加个 button 并调用服务端事件, 然后 服务端返回一个 ir.actions.client 事件给客户端即可. 不知道哪位大大有更好的办法
<button name="act_start" type="object" string="Start"/>
然后 在对象中定义该对象 act_start 方法
def act_start(self, cr, uid, ids, context=None): context={} context["key"]="value" ret = { 'type': 'ir.actions.client', 'tag': 'lcd_video.btnPerview', 'context':context, } return ret
然后 在 模块JS文件中, 去定义JS部分的对象
instance.my_sample.btn_start = function(parent, action){ var self = this; //id action.context.active_id //ids action.context.active_ids //_name action.context.active_model // 更多参数 请查看相关文档 或 用js调试 自行发掘 alert('test'); // and do something... return false; };