layui 父子页面互相传值 iframe

2 篇文章 0 订阅
1 篇文章 0 订阅

本篇文章主要介绍一下layui父子页面互相传值问题
1、父页面传值给子页面
场景描述:layui 弹出层在这里插入图片描述
相信贴个图片就能一目了然了,就不多哔哔了
解决方案:`

 function openAddPage(_titel, data){
        var index = layui.layer.open({
            title : _titel,
            type : 2,
            area : ['500px', '400px'],
            content : "dictionary-add.shtml",
            success : function(layero, index){
                var body = layui.layer.getChildFrame('body', index);
                if(data){
                    body.find(".dicName").val(data.dicName);
                    body.find(".dicId").val(data.dicId);
                    body.find(".dicDicId").val(data.dicDicId);
                    body.find(".name").val(data.name);
                    body.find(".content").val(data.content);
                    body.find(".note").val(data.note);
                    form.render();
                };
              /*  setTimeout(function(){
                    layui.layer.tips('点击此处返回文字典列表', '.layui-layer-setwin .layui-layer-close', {
                        tips: 3
                    });
                },500)*/
            },
            end : function(index, layero){ 
            	tableIns.reload();
        	}    
        	
        })
        //layui.layer.full(index);
        //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
        //$(window).on("resize",function(){
            //layui.layer.full(index);
        //})
    }

这种方式在layui官网就有。 也不多哔哔了


**2、子页面传值给父页面**

场景描述:
在这里插入图片描述

大概场景是弹出一个页面,将弹出层的合同编码传递给父页面,继而进行后续操作。
解决方案:

layui将jquery最稳定的版本1.11作为一个内置的DOM模块(唯一的一个第三方模块)。
首先js中声明一下内容

  parent$ = window.parent.layui.jquery,

下边的parent$ 就可以用了

    table.on('toolbar(contractList)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
        switch (obj.event) {
            case 'getCheckData': //确认
                var data = checkStatus.data;  //获取选中行数据
                parent$("#contractCode").val(data[0].contractcode);
                parent$("#contractName").val(data[0].contractname);
                close();
                break;
            case 'back': //返回
                close();
                break;
        }
        ;
    });

总结:

本来要哔哔好多东西的,没想到突然就要结束了
不过呢,通过以上内容,更加明白并深入体会到基础(底层)知识的重要性。万事皆是
比如拿很多框架的封装来说,闭眼思考,却是如此

主要了解 window对象的parent属性:返回当前窗口的父窗口


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uni-app中,父子页面间传递数据可以通过以下几种方式实现: 1. 使用 `uni.navigateTo` 或 `uni.redirectTo` 方法跳转到子页面时,可以将数据作为URL参数传递。例如,在父页面中跳转到子页面时: ``` uni.navigateTo({ url: '/pages/child/child?id=123&name=abc' }); ``` 在子页面中可以使用 `this.$route.query` 获取URL参数: ``` onLoad() { const id = this.$route.query.id; const name = this.$route.query.name; } ``` 2. 使用 `uni.navigateBack` 方法返回父页面时,可以通过 `uni.navigateBack` 的第二个参数传递数据。例如,在子页面中返回父页面时: ``` uni.navigateBack({ delta: 1, success: () => { const pages = getCurrentPages(); const parent = pages[pages.length - 2]; parent.setData({ message: 'Hello from child page' }); } }); ``` 在父页面中可以通过 `this.data.message` 获取传递的数据。 3. 如果父子页面之间需要频繁地传递数据,可以使用 `uni.$emit` 和 `uni.$on` 方法实现组件间通信。例如,在父页面中: ``` onMounted() { uni.$on('child-page-message', (message) => { console.log('Message from child page:', message); }); } ``` 在子页面中: ``` uni.$emit('child-page-message', 'Hello from child page'); ``` 父页面会监听名为 `child-page-message` 的事件,并在子页面触发该事件时获取传递的数据。 以上是uni-app中实现父子页面间数据传递的几种方式,你可以根据具体需求选择合适的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值