我一直在为QuickBase编写一个自定义脚本,它需要一些日期操作。我决定使用moments.js,因为我在quickbase中使用它,所以我使用$ .getscript动态加载moments.js。我已经使用其他插件(jquery.md5.min.js)完成了此过程,并且此工作正常。如何从QuickBase自定义脚本访问瞬间对象(从moment.js)
问题是,即使正确读取了moment.js,当我尝试使用它时(例如,请参阅我为调试添加的console.log(),我收到一条错误消息,告诉我“没有定义“
我知道moment.js正在读取,因为我已经把它加载到控制台后加载,我试图只有在它通过异步方法加载后才使用它的函数。我用几个简单的jsfiddles来玩,只是为了确保我正确地调用了它。我也检查了几次url,它是正确的。我的其他代码也是正确的(如果我用moment()注释掉它,如预期)
$.getScript(domain + dbid_app + urlMoments)
.done(function(script, textStatus) {
rightNow = moment();
dfd.resolve(); // Resolve when the script is finished loading.
console.log("moments.js has finished loading.\n\n" + textStatus);
console.log(rightNow);
})
.fail(function(jqxhr, settings, exception) {
console.log("Triggered ajaxError handler.");
});
如何调用moment()函数?在运行小提琴时,在查看了许多在线示例之后,它很简单:var myTime = moment();
,但这不适用于我的脚本。有没有机会,即使用$ .getscript()加载moments.js之后,它没有被执行?从我可以在moment.js的源代码中看到的,工厂函数应该被自动调用,不是吗?
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.moment = factory()
}
最后一件事:URL指向我moments.js创建的QuickBase代码页。这也是我如何使用jquery.md5.js而没有任何问题。
非常感谢!您的建议非常有效。 – LeoNoAioria