从$ .getScript调用时Object.assign函数不起作用,但粘贴内容时起作用

时间:2019-11-28 14:27:15

标签: jquery javascript-objects

我正在尝试通过将某些部分作为外部js文件进行整理来整理我的js代码,但这会给我带来混杂的结果。

在我的JS脚本中,我有一个var(选项),我也尝试了不带var的变量(用作全局范围变量)

var options = {
        onSave: function () {
            fbEditor.toggle();
            formContainer.toggle();
            $('form', formContainer).formRender({formData: fb.formData});
        },
        dataType: 'json',
        disabledAttrs: ["description", "access", "className"],
        disableHTMLLabels: true
    };

我正在使用

扩展该变量
Object.assign(options, {
    formData: somestuff;
});

我也想包含很多数据,为此我正在使用另一个JS文件,

$.getScript("assets/js/pages/createform.js", function () {
    makeForms();
});

这是该内容的摘要

function makeForms() {
    console.log("Script loaded");
    Object.assign(options, {
        inputSets: [
            {
                label: 'Leads',
                fields: [
                    {
                        "type": "header",
                        "subtype": "h1",
                        "label": "Buyer Form"
                    },
                    {
                        "type": "text",
                        "label": "In what City are you looking to buy your new property?",
                        "subtype": "text",
                        "maxlength": "128"
                    }
                ]
            }
        ]

    });
};

它显示脚本已被加载,但无法正常工作。当我隔离

Object.assign(options, {
  inputSets: [
    {
...
}
    ]
});

并将其添加到与getScript位置相同的原始JS中,它可以按预期工作。

在包含文件中调用Object.assign时不起作用吗?

编辑: 我现在正在使用一些肮脏的技巧,其中我只使用对我有用的PHP包含函数。但是,我很想知道正确的方法。

这不起作用:

...
        $.getScript("assets/js/pages/createform.min.js", function () {

        });
...

这确实有效:

...                                          
<?php include "assets/js/pages/createform.min.js"; ?>
...

0 个答案:

没有答案