关于APICloud多层FrameGroup嵌套发生Frame覆盖问题的解决

问题描述
博主嵌套了两层,然后全量同步在模拟器上时,在FrameGroup(假设此时有两个frame a、b)中的Frame(假设名为a)嵌套的FrameGroup(c、d)的Frame(假设名为c)覆盖了b。
解决方法
1)首先在a对应的api.openFrameGroup()方法的回调事件中对ret.index进行判断(设a对应的index为2)则有

function(ret, err) {
        if (ret.index != 2) {//如果ret.index不等于2则隐藏a中嵌套的FrameGroup,即当前Frame不是a
                 api.setFrameGroupAttr({
                 name: 'Cdb_Group',
                 hidden: true
                });
        }else {//否则不隐藏,即当前Frame是a
             api.setFrameGroupAttr({
             name: 'Cdb_Group',
             hidden: false
         });
       }
);

2)但是任然会存在一个问题,在页面第一次渲染的时候a对应的FrameGroup中的Frame即c任然会显示(即对b产生覆盖),相当于Frame第一次载入的时候回调事件中的隐藏并不会执行,只有第二次进入Frame会进行回调事件的隐藏,且第一次载入会覆盖,是因为api.openFrameGroup()中有个preload属性(重点),默认的值是1,即会加载当前页之后的第一个frame!,所以在前面的回调事件的基础上需给该回调事件对应的api.openFrameGroup()方法中的preload属性值设为0即可。如

preload:0,//preload默认值为1 即加载当前页的后一个frame
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值