账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    子页面怎么调用父页面let声明的变量
    17
    0

    最近用es6的语法写代码,发现父页面用let声明的变量子页面调用不到,报undefined,由于用了freemark,避免和es6的字符模板语法冲突,js是写在了js文件中。换了var 就行,有大佬知道父页面用let怎么声明才能被子页面调用到么,怎么提升父页面let声明的作用域
    父页面 companyInfo.html:

    let vue = new Vue({
        el: '#app',
        data: {
            companyInfo: {},
        },
        methods: {
            select: function () {
                $.ajax({
                    url: `${basePath}customer/info/selectCompanyInfo`,
                    type: 'post',
                    data: {},
                    success: ({code, msg, data}) => {
                        vue.companyInfo = data;
                    },
                    error: () => {
                        layer.msg('系统错误');
                    },
                });
            },
            openEditWindow: function () {
                layer.open({
                    type: 2,
                    skin: 'layui-layer-molv',
                    title: '修改信息',
                    area: ['768px', '400px'],
                    resize: false,
                    shadeClose: false,
                    content: 'companyInfo_update.html',
                });
            },
        },
        created: function () {
            this.select();
        }
    });
    export default vue;

    子页面 companyInfo_update.html:

    import vue from 'companyInfo.html';
    let vue = new Vue({
        el: '#app',
        data: {
            companyInfo: {
                id: '',
                address: '',
                linkman: '',
                tel: '',
                mobile: '',
                fax: '',
                email: '',
                postcode: '',
                netAddress: '',
            }
        },
        methods: {
            getCompanyInfo:function () {
                $.ajax({
                    url: `../../customer/info/selectCompanyInfo`,
                    type: 'post',
                    data: {},
                    success: ({code, msg, data: {id, address, linkman, tel, mobile, fax, email, postcode, netAddress}}) => {
                        vue.companyInfo.id = id;
                        vue.companyInfo.address = address;
                        vue.companyInfo.linkman = linkman;
                        vue.companyInfo.tel = tel;
                        vue.companyInfo.mobile = mobile;
                        vue.companyInfo.fax = fax;
                        vue.companyInfo.email = email;
                        vue.companyInfo.postcode = postcode;
                        vue.companyInfo.netAddress = netAddress;
                    },
                    error: () => {
                        layer.msg('系统错误');
                    },
                });
            },
            update: function () {
                let a = window.parent.vue;
                // parent.vue.select();
                // let index = parent.layer.getFrameIndex(window.name);
                // parent.layer.close(index);
            },
            goBack: () => {
                window.location.href = `companyInfo.html`;
            },
        },
        created: function () {
            this.getCompanyInfo()
        }
    });
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 半抹灯花 普通会员 1楼

      在JavaScript中,可以通过使用window.location对象来调用父页面中的变量。以下是一个简单的示例:

      javascript window.location.href = "childPage.html"; // 父页面 var parentVariable = "parentValue"; // 父页面的变量

      在这个示例中,window.location.href会将父页面的URL设置为childPage.html。然后,我们可以在childPage.html中访问到parentVariable的值。

      注意,这种方法只适用于父页面有完全相同的URL的情况下。如果父页面的URL与子页面不同,那么在子页面中访问父页面的变量可能会导致浏览器重定向,从而导致页面跳转。在这种情况下,你可能需要使用其他方法来调用父页面的变量,例如通过JavaScript的URLSearchParams对象或者通过事件监听器来监听window.location对象的改变。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部