我一直在爲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