ODOO 的 JavaScript 【问题及处理】如何正确使用面包屑导航

在做自定义DashBoard的时候,我遇见里这么个问题:在dashboard中,有一个事件使用了do_action跳转到指定的action。

此时面包屑导航中出现了我的点击路径 :SPS DASHBOARD / SPS ORDER 。但当我点击了 SPS DASHBOARD 回到自定义DashBoard 页面时,执行刷新页面操作,页面会再跳转回 do_action 指定的 action页面。看下图:

显然,这里像是出现了一个BUG,我在A页面刷新,你怎么能去B页面呢,这肯定是不对的。但是是什么原因导致的呢?

在使用do_action时,do_action 接收两个参数,一个是目标动作信息,一个是options参数:

this.do_action({
    name: "SPS ORDER",
    type: 'ir.actions.act_window',
    res_model: 'model.name'
    .....
},options) 

在options中通常会传递面包屑导航信息:

var options = {
    on_reverse_breadcrumb: this.on_reverse_breadcrumb,
};
// 面包屑导航处理
on_reverse_breadcrumb: function () {
    var self = this;
    web_client.do_push_state({});
    // 渲染新的页面
},

因为我在执行do_action前,没有将执行前状态,写到客户端(web_client)里,而这个状态是个非常重要的处理,所以导致了上面问题的出现。写入状态的语句就是上面的第四行 web_client.do_push_state({})


既然知道了问题出在哪,那就好解决了。

1 先引入 web_client

var web_client = require('web.web_client');

2 增加面包屑导航处理方法

​// 面包屑导航处理
on_reverse_breadcrumb: function () {
    var self = this;
    web_client.do_push_state({});
    // 渲染新的页面
},

3 在do_action 中使用

var options = {
    on_reverse_breadcrumb: this.on_reverse_breadcrumb,
};

最后再看效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值